Skip to content

Instantly share code, notes, and snippets.

@masterkitano
Created September 20, 2017 18:58
Show Gist options
  • Save masterkitano/6f7ddfdbcf3610d86cb35ab82fe85914 to your computer and use it in GitHub Desktop.
Save masterkitano/6f7ddfdbcf3610d86cb35ab82fe85914 to your computer and use it in GitHub Desktop.
configurar multiples autenticadores para usuario final y para administrador:
en archivo config/auth.php:
especificar los guards q se quieren usar, uno para cada tipo de acceso:
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'panel' => [
'driver' => 'session',
'provider' => 'staff',
],
driver siempre es 'session'
provider será el nombre de cada provider a usar
especificar providers:
el nombre de los providers q se usaran en cada guard
driver siempre es 'eloquent'
model será el modelo q se usara para buscar el email y password al autenticar
'staff' => [
'driver' => 'eloquent',
'model' => App\Staff::class,
],
'users' => [
'driver' => 'eloquent',
'model' => App\Client::class,
],
de esta manera ligamos:
el modelo de la base de datos que será usado para autenticar con nuestro provider, y finalmente asociamos nuestro provider al guard, el guard será lo que usaremos al final para autenticar rutas y controllers.
para bloquear acceso a rutas:
usar middlewware auth, especificando el guard que se quiere usar
ej usamos guard de panel para autenticar con ese guard y su respectivo provider y modelo
(archivo routes.php)
Route::group(['middleware' => 'auth:panel'],function ()
{
}
para autenticar:
(archivo routes.php)
creamos nuestras rutas publicas para login y logout:
Route::post('login', 'nombreControlador@login');
Route::post('logout', 'nombreControlador@logout');
en nuestro controller:
usamos los métodos del middleware Auth:
check, atempt, y user pero con sus respectivos guards.
Auth::guard("panel")->check()
\Auth::guard("panel")->attempt(['email' => $user, 'password' => $password]);
$user = \Auth::guard("panel")->user();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment