任何人都可以通過示例解釋Laravel 5.2 Multi Auth我想驗證用戶和管理員的形式user表,并admin分別表。我正在使用User開箱即用的laravel提供的模型,并為Admin.我添加了一個保護密鑰和提供者密鑰創建了相同的模型auth.php.逆天'guards' => [
'user' =>[
'driver' => 'session',
'provider' => 'user',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],],供應商'providers' => [
'user' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
]],路線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');});我創建了一個名為AuthAdminLaravel的默認目錄AuthController.php和PasswordController.php文件的目錄。(名稱空間相應修改)首先,在Laravel的文檔中提到如何指定自定義防護,同時進行身份驗證,這是不起作用的。Laravel的文檔中提到的另一種方法是使用不起作用的后衛。如果有人能夠解決問題并在我錯了的情況下糾正我,那將是有益的。
3 回答
阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
如果這有助于任何人,這可能只是由于我對中間件缺乏了解,這是我必須做的工作(除了@imrealashu采取的步驟)...
在route.php:
Route::get('/admin', [
'middleware' => 'admin',
'uses' => 'AdminController@index']);這是在web中間件組中。在此之前,我嘗試將它放在一個單獨的admin中間件組中,甚至在一個auth:admin組中,但是這不起作用,當我在路由本身指定中間件作為管理員時,它只適用于我。我不知道為什么會這樣,但我希望它可以讓別人像我一樣把頭發拉出來。
料青山看我應如是
TA貢獻1772條經驗 獲得超8個贊
在laravel 5.6中非常容易。只需轉到config/auth.php并在providers數組中添加此行:
'admins' => [ 'driver' => 'database', 'table' => 'admin_table']
請注意,我們用于database驅動程序eloquent。
現在將其添加到guards數組:
'admin_guard' => [ 'driver' => 'session', 'provider' => 'admins']
現在我們完成了!使用admins表時使用此選項:
Auth::guard('admin_guard')->User();干杯。
添加回答
舉報
0/150
提交
取消
