如何使用两个Laravel默认保护


How to Use two Laravel Default Guard?

我试图用相同的表单登录Admin和User,但config/auth我只能设置一个默认的

这是我的config/auth

'defaults' => [
    'guard' => 'web_users',
    'passwords' => 'users',
],
'guards' => [
    'web_users' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'web_admins' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App'User::class,
    ],
    'admins' => [
        'driver' => 'eloquent',
        'model' => App'Admin::class,
    ],
],

当我用默认的"web_users"登录用户时,我可以用Auth::User()方法检索他的数据,但如果我用默认"web_admins"登录管理员,则无法检索任何数据。

路线:

Route::resource('log','LogController');
Route::get('logout','LogController@logout');

日志控制器

public function store(Request $request)
{
    if(Auth::guard('web_users')->attempt(['email'=>$request['email'],'password'=>$request['password']])) {
        return Redirect::to('/');
    }
    if(Auth::guard('web_admins')->attempt(['email'=>$request['email'],'password'=>$request['password']])) {
        return Redirect::to('/');
    }
}
public function logout()
{
    Auth::logout();
    return Redirect::to('log');
}

注意:对不起我的英语,我说得不太好

对Routes文件尝试此操作

Route::group(['middleware' => 'auth:web_users,web_admin'], function () {  
  Route::resource('log','LogController');
  Route::get('logout','LogController@logout');
});