J'essaie d'authentifier users et admin de la table user
et de la table admin
, respectivement. J'utilise le modèle User
fourni par laravel et créé de la même manière pour Admin.
J'ai ajouté une clé de garde et une clé de fournisseur dans auth.php.
Gardes
'guards' => [
'user' =>[
'driver' => 'session',
'provider' => 'user',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
Fournisseurs
'providers' => [
'user' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
]
],
Routes
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');
});
J'ai créé un répertoire appelé AuthAdmin
où les fichiers par défaut AuthController.php
et PasswordController.php
de Laravel sont présents. (Espace de noms modifié en conséquence)
Tout d’abord, dans la documentation de Laravel, il est indiqué comment spécifier une protection personnalisée lors de l’authentification, ce qui ne fonctionne pas.
La documentation de Laravel mentionne une autre méthode consistant à utiliser un protecteur qui ne fonctionne pas aussi.
Ce serait avantageux si quelqu'un pouvait résoudre les problèmes et me corriger si je me trompais.
C'est très facile avec Laravel 5.6. Allez simplement à config/auth.php
et ajoutez cette ligne dans le tableau providers
:
'admins' => [
'driver' => 'database',
'table' => 'admin_table'
]
Notez que nous avons utilisé database
pour le pilote non eloquent
.
Ajoutez maintenant ceci au tableau guards
:
'admin_guard' => [
'driver' => 'session',
'provider' => 'admins'
]
Maintenant nous avons fini! Utilisez ceci lorsque vous travaillez avec admins table:
Auth::guard('admin_guard')->User();
À votre santé.