如何改变laravelsanctumreturn"message":"Unauthenticated."

How to change laravel sanctum return "message": "Unauthenticated."

我已经为 API 身份验证集成了 sanctum。如果 token 未经身份验证并使用 laracasts

上的此答案解决了它,我将面临重定向问题

我可能会收到 JSON 这样的回复:

{
"message": "Unauthenticated."
}

我想做的是将此响应处理为:

{
"status_code": 401,
"success":false,
"message": "Unauthenticated."
}

提前致谢^^

如果你在line

查看laravel/sanctum的源代码
 if (! $request->user() || ! $request->user()->currentAccessToken()) {
    throw new AuthenticationException;
 }

他们使用 AuthenticationException,因此您可以使用 Rendering Exceptions 覆盖它,方法是在您的 App\Exceptions\Handler 中添加 register 方法,就像这样

use Illuminate\Auth\AuthenticationException;

public function register()
{
  $this->renderable(function (AuthenticationException $e, $request) {
    if ($request->is('api/*')) {
        return response()->json([
          'status_code' => 401,
          'success' => false,
          'message' => 'Unauthenticated.'
        ], 401);
    }
   });
}

you cloud 在文档中阅读有关 Rendering Exceptions 的更多信息