Suj*_*eep 2 authentication laravel laravel-passport laravel-9
以下是我在 laravel 9 项目中的登录功能。我正在尝试通过创建身份验证令牌laravel-passport。
public function login(Request $request) {
$user = User::where('email', $request->email)->first();
if ($user) {
if (Hash::check($request->password, $user->password)) {
$token = $user->createToken('Laravel Password Grant Client')->accessToken;
$response['token'] = $token;
return response($response, 200);
} else {
$response = ["message" => "Password mismatch"];
return response($response, 422);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的回应是,
{
"token": {
"name": "Laravel Password Grant Client",
"abilities": [
"*"
],
"tokenable_id": 1,
"tokenable_type": "App\\Models\\User",
"updated_at": "2022-07-04T05:58:36.000000Z",
"created_at": "2022-07-04T05:58:36.000000Z",
"id": 62
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里没有得到任何令牌。请帮我解决这个问题。
小智 6
accessToken 是正确的,只是不要忘记使用:
use Laravel\Passport\HasApiTokens;
Run Code Online (Sandbox Code Playgroud)
代替:
use Laravel\Sanctum\HasApiTokens;
Run Code Online (Sandbox Code Playgroud)
这是对的: $token = $user->createToken('Laravel Password Grant Client')->accessToken;