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

时间:2020-08-29 08:48:56

标签: laravel api response laravel-passport

先谢谢您

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

{ 
    "message": "Unauthenticated." 
}

但是我想要这样的回复

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

1 个答案:

答案 0 :(得分:2)

如果您想更改Laravel渲染错误的方式,可以在app/Exceptions/Handler.php类中进行。

在这种特殊情况下,您可以通过在您的unauthenticated类中添加te following来覆盖Handler方法:

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'));
}