Laravel Passport - 将默认的未经身份验证的响应更改为自定义响应

Laravel Passport - Change default Unauthenticated response to custom one

提前谢谢你,

我正在使用 laravel 护照进行 API 用户身份验证,而如果 access_token 无效,那么我们将收到如下响应

{ 
    "message": "Unauthenticated." 
}

但我想要像下面这样的回复

{ 
    "code" : 0,
    "message": "Unauthenticated." 
    "data" : [],
}

如果您想更改 Laravel 呈现错误的方式,您可以在 app/Exceptions/Handler.php class.

中进行

在这种特殊情况下,您可以通过将以下内容添加到 Handler class:

来覆盖 unauthenticated 方法
protected function unauthenticated($request, AuthenticationException $exception)
{
    if ($request->expectsJson()) {
        return response()->json([
            'message' => $exception->getMessage(),
            'code'    => 0,
            'data'    => [],
        ], 401);
    }

    return redirect()->guest($exception->redirectTo() ?? route('login'));
}