Laravel 9 - 无法使用护照生成令牌

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;