我的应用程序中有多个需要进行身份验证的实体。所以我定义了多个警卫:
'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防护。没有工作。
我也试过配置:清除并重新运行服务器但没有任何效果!
我没有想法。我知道我可以编写自己的简单登录信息,但为什么要重新发明轮子,我正在按照文档进行操作。帮助