laravel 护照:注册日期声明已弃用

laravel passport : registered date claims is deprecated

我正在尝试使用 laravel 护照进行 api 身份验证

 $user = User::create([
            'first_name' => $request->firstName,
            'last_name' =>  $request->lastName,
            'email' => $request->email,
            'password' => Hash::make($request->password),
            'verified' => User::UNVERIFIED_USER,
            'capacity' => User::REGULAR,
            'verification_token' => User::generateVerificationToken(),
        ]);

        $token = $user->createToken('Laravel Password Grant Client')->accessToken;
        return response()->json(['data' => $token]);


我收到了这个错误:

    "message": "Method Laravel\Passport\Bridge\AccessToken::__toString() must not throw an exception, caught ErrorException: Using integers for registered date claims is deprecated, please use DateTimeImmutable objects instead.",
    "exception": "Symfony\Component\ErrorHandler\Error\FatalError",
    "file": "C:\xampp\htdocs\laravel\crowdfund\vendor\league\oauth2-server\src\ResponseTypes\BearerTokenResponse.php",
    "line": 0,
    "trace": []

我该如何解决?

这是一个已知的 issue。解决方案是将 lcobucci/jwt 依赖降级到版本 ~3.3.0.

您可以在终端中直接运行以下命令。

composer require lcobucci/jwt 3.3.3

然后用你的护照API认证