在laravel 5.5中定制auth警卫

时间:2018-01-07 19:47:25

标签: laravel laravel-5.5

我的应用程序中有多个需要进行身份验证的实体。所以我定义了多个警卫:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],

    'customer' => [
        'driver' => 'passport',
        'provider' => 'customers',
    ],
    'partner' => [
        'driver' => 'passport',
        'provider' => 'partners',
    ],
    'admin' => [
        'driver' => 'passport',
        'provider' => 'admins',
    ],
],

然后在我的登录控制器中,我有以下条件:

if (Auth::guard('admin')->attempt(['email' => $email, 'password' => $password])) {
        ...
        ...
    }

当我尝试这样做时(尽管它是在文档中写的)我收到一个错误,告诉我"方法尝试不存在"。

所以我尝试在控制器上定义guard方法(也就像文档一样):

protected function guard()
{
    return Auth::guard('admin');
}

身份验证仍然无法使用正确的凭据(我尝试在尝试使用dd(Auth :: guard())之前检查Auth facade正在使用什么防护,并且它是默认的Web防护。

我尝试从auth config中的默认防护阵列中删除Web防护。没有工作。

我也试过配置:清除并重新运行服务器但没有任何效果!

我没有想法。我知道我可以编写自己的简单登录信息,但为什么要重新发明轮子,我正在按照文档进行操作。帮助

0 个答案:

没有答案