为什么Auth指定guard后会提示没有attempt方法?
我查了些文章,都是这么用的啊,到了我这指定守卫guard后就不好使了。。。
提示找不到attempt方法?
看Auth的代码好像引入了一个Guard类,这个类里确实没有attempt,那该怎么验证登录?
* @see \Illuminate\Contracts\Auth\Guard
别人都是这么用的
if(!Auth::guard('admin')->attempt($arr))
{
...
}
我的却报错。。。
解决方法
多谢各位的回答,可能我没表述清楚,我是用passport验证登录的,好像passport指定guard之后就是会找不到attempt方法,我都看混乱了。
最后的解决方式是自定义验证,这个在passport文档里有提到
// 先查询出用户
$user = AdminUser::where('name',$request->name)->where('phone',$request->phone)->first();
// 再验证密码
if(!$user || !Hash::check($request->password, $user->password)){
return response()->json([
'message' => 'Unauthorized'
], 401);
}
// 生成token
$tokenResult = $user->createToken('admin_'.$user->id);
$token = $tokenResult->token;
"laravel/framework": "^8.12" 有啊,我都可以使用