que plantillas motor index gratis for descargar content ciclo auth laravel laravel-5 laravel-5.2 laravel-authorization

plantillas - ¿Alguien puede explicar Laravel 5.2 Multi Auth con un ejemplo?



laravel foreach index (3)

Después de muchas excavaciones y muchas preguntas y respuestas, finalmente logré trabajar con Laravel 5.2 Multi Auth con dos tablas, por lo que estoy escribiendo Respuesta de mi propia pregunta.

Cómo implementar Multi Auth en Larvel 5.2

Como se ha mencionado más arriba. Dos tablas de admin y users

Laravel 5.2 tiene un nuevo comando artisan .

php artisan make:auth

generará una route básica de inicio de sesión / registro, view y controller para user tabla de user .

Haga una tabla de admin como tabla de users para simplificar.

Controlador para administrador
app/Http/Controllers/AdminAuth/AuthController
app/Http/Controllers/AdminAuth/PasswordController
(nota: acabo de copiar estos archivos de la app/Http/Controllers/Auth/AuthController aquí)

config/auth.php

//Authenticating guards ''guards'' => [ ''user'' =>[ ''driver'' => ''session'', ''provider'' => ''user'', ], ''admin'' => [ ''driver'' => ''session'', ''provider'' => ''admin'', ], ], //User Providers ''providers'' => [ ''user'' => [ ''driver'' => ''eloquent'', ''model'' => App/User::class, ], ''admin'' => [ ''driver'' => ''eloquent'', ''model'' => App/Admin::class, ] ], //Resetting Password ''passwords'' => [ ''clients'' => [ ''provider'' => ''client'', ''email'' => ''auth.emails.password'', ''table'' => ''password_resets'', ''expire'' => 60, ], ''admins'' => [ ''provider'' => ''admin'', ''email'' => ''auth.emails.password'', ''table'' => ''password_resets'', ''expire'' => 60, ], ],

route.php

Route::group([''middleware'' => [''web'']], function () { //Login Routes... Route::get(''/admin/login'',''AdminAuth/AuthController@showLoginForm''); Route::post(''/admin/login'',''AdminAuth/AuthController@login''); Route::get(''/admin/logout'',''AdminAuth/AuthController@logout''); // Registration Routes... Route::get(''admin/register'', ''AdminAuth/AuthController@showRegistrationForm''); Route::post(''admin/register'', ''AdminAuth/AuthController@register''); Route::get(''/admin'', ''AdminController@index''); });

AdminAuth/AuthController.php

Agregue dos métodos y especifique $redirectTo y $guard

protected $redirectTo = ''/admin''; protected $guard = ''admin''; public function showLoginForm() { if (view()->exists(''auth.authenticate'')) { return view(''auth.authenticate''); } return view(''admin.auth.login''); } public function showRegistrationForm() { return view(''admin.auth.register''); }

te ayudará a abrir otro formulario de inicio de sesión para administrador

crear un middleware para admin

class RedirectIfNotAdmin { /** * Handle an incoming request. * * @param /Illuminate/Http/Request $request * @param /Closure $next * @param string|null $guard * @return mixed */ public function handle($request, Closure $next, $guard = ''admin'') { if (!Auth::guard($guard)->check()) { return redirect(''/''); } return $next($request); }

}

registrar middleware en kernel.php

protected $routeMiddleware = [ ''admin'' => /App/Http/Middleware/RedirectIfNotAdmin::class, ];

use este middleware en AdminController , por ejemplo,

namespace App/Http/Controllers; use Illuminate/Http/Request; use App/Http/Requests; use App/Http/Controllers/Controller; use Illuminate/Support/Facades/Auth; class AdminController extends Controller { public function __construct(){ $this->middleware(''admin''); } public function index(){ return view(''admin.dashboard''); } }

Todo eso es necesario para que funcione y también para obtener json de uso de administrador autenticado
Auth::guard(''admin'')->user()

Editar - 1
Podemos acceder al usuario autenticado directamente usando
Auth::user() pero si tiene dos tablas de autenticación, debe usar

Auth::guard(''guard_name'')->user()

para cerrar sesión

Auth::guard(''guard_name'')->user()->logout()

para el usuario autenticado json

Auth::guard(''guard_name'')->user()

Editar 2

Ahora puede descargar el proyecto implementado Laravel 5.2 Multiauth http://imrealashu.in/code/laravel/multi-auth-with-laravel-5-2-2/

Estoy tratando de autenticar a los usuarios y al administrador de user tabla de user y la tabla de admin respectivamente. Estoy usando el modelo de User según lo provisto por laravel fuera de la caja y lo creé para Admin. He agregado una clave de protección y una clave de proveedor en auth.php.

Guardias

''guards'' => [ ''user'' =>[ ''driver'' => ''session'', ''provider'' => ''user'', ], ''admin'' => [ ''driver'' => ''session'', ''provider'' => ''admin'', ], ],

Proveedores

''providers'' => [ ''user'' => [ ''driver'' => ''eloquent'', ''model'' => App/User::class, ], ''admin'' => [ ''driver'' => ''eloquent'', ''model'' => App/Admin::class, ] ],

Rutas

Route::group([''middleware'' => [''web'']], function () { // Login Routes. Route::get(''/admin/login'',''AdminAuth/AuthController@showLoginForm''); Route::post(''/admin/login'',''AdminAuth/AuthController@login''); Route::get(''/admin/logout'',''AdminAuth/AuthController@logout''); // Registration Routes. Route::get(''admin/register'', ''AdminAuth/AuthController@showRegistrationForm''); Route::post(''admin/register'', ''AdminAuth/AuthController@register''); Route::get(''/admin'', ''AdminController@index''); });

He creado un directorio llamado AuthAdmin donde están presentes los archivos AuthController.php y PasswordController.php predeterminados de Laravel. (Espacio de nombres modificado en consecuencia)

En primer lugar, en los documentos de Laravel se menciona cómo especificar la protección personalizada mientras se autentica de esta manera, lo que no funciona.

Hay otro método mencionado en los documentos de Laravel para usar un guardia que tampoco funciona.

Sería beneficioso si alguien pudiera resolver los problemas y corregirme si me equivoco.


En caso de que esto ayude a alguien, y esto puede deberse a mi falta de comprensión del middleware, esto es lo que tuve que hacer para que esto funcionara (además de los pasos tomados por @imrealashu) ...

En route.php :

Route::get(''/admin'', [ ''middleware'' => ''admin'', ''uses'' => ''AdminController@index'' ]);

Esto está en el grupo de middleware web . Antes de esto, intenté ponerlo en un grupo de middleware de admin separado e incluso en un grupo de auth:admin pero esto no funcionó, solo funcionó para mí cuando especifiqué el middleware como administrador en la ruta misma. No tengo idea de por qué esto es así, pero espero que salve a otros de arrancarse el pelo como lo hice yo.


Es muy fácil en laravel 5.6. Simplemente vaya a config/auth.php y agregue esta línea en la matriz de providers :

''admins'' => [ ''driver'' => ''database'', ''table'' => ''admin_table'' ]

Tenga en cuenta que utilizamos la database de database para el controlador no eloquent .

Ahora agregue esto a la matriz de guards :

''admin_guard'' => [ ''driver'' => ''session'', ''provider'' => ''admins'' ]

Ahora hemos terminado! Use esto cuando trabaje con la tabla de administradores:

Auth::guard(''admin_guard'')->User();

Aclamaciones.