在我的项目中,我有两个保护,第一个是"web",与admins表相关,带有会话驱动程序,第二个是"mobile",与users表相关,带有令牌驱动程序。
'defaults' => [
'guard' => 'web',
'passwords' => 'admins',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'admins',
],
'mobile' => [
'driver' => 'token',
'provider' => 'users',
],
],
- 注意:我使用的是密室认证系统 *
因此,我尝试使用第二个防护登录,当我尝试使用凭据时,出现错误:
public function login(Request $request)
{
.............
if(!Auth::guard('mobile')->attempt($request->only(['email', 'password']))){
return response()->json([
'status' => false,
'message' => 'Email & Password does not match with our record.',
], 401);
}
.............
}
错误:
"调用未定义的方法Illuminate\Auth\TokenGuard::attempt()"
那么如何检查非默认卫士的凭据,或者有什么建议?
2条答案
按热度按时间8hhllhi21#
如果你正在使用sancutum那么你可以这样做
vd8tlhqk2#
@sanjog-karki您的解决方案对我有效,但我尝试了另一种解决方案,即复制“移动的”警卫,并将新警卫的驱动程序设置为:“session”,所以我可以使用Auth::guard(“new-guard”)-〉attempt($credintials)而没有任何问题。
现在我可以像这样检查凭据:
我可以把它用在中间件中,就像这样:
除非出了问题,否则我会坚持使用这个解决方案。