如何在默认响应护照中添加状态



我正在Web和应用程序中开发和应用。对于应用程序的API,我在laravel中使用了Passport。使用护照我可以创建令牌,并使用该令牌验证用户是否访问其他 api。但是,如果令牌无效,则它会返回错误消息,例如"未经授权",没有任何状态。如果我想添加错误状态(如 401(并带有消息"未经授权",任何人都可以告诉我该怎么办。我必须更改代码的地方,以便我的 Web 代码不会受到影响。我想要如下所示的 json 响应,json 中有 2 个字段。

状态:401 消息:未授权

您可以创建一个新的异常处理程序中间件来捕获这些请求并修改它返回的响应。

例:

class oAuthExceptionHandler {
public function handle($request, Closure $next) {
try {
$response = $next($request);
if (isset($response->exception) && $response->exception) {
throw $response->exception;
}
return $response;
} catch (Exception $e) {
return response()->json(array(
'result' => 0,
'msg' => $e->getMessage(),
), 401);
}
}
}

然后,在您的app/Http/Kernel.php中,命名您的中间件并将其添加到您的 api 组中:

protected $routeMiddleware = [
'oauth_exception' => oAuthExceptionHandler::class,
...
];
protected $middlewareGroups = [
...
'api' => [
'oauth_exception',
...
],
];

您可以处理 api 异常并将其响应格式化为app/Exceptions/Handler.php

这是您可以关注的链接

Laravel API,如何正确处理错误

最新更新