Laravel 8 API未授权处理程序未显示

u7up0aaq  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(142)

我想添加一个自定义的响应,当一个端点被访问时,没有访问令牌。

public function render($request, Exception $exception)
    {
        if ($exception instanceof AuthorizationException) {
            return response()->json([
                'message' => 'Unauthorized'
            ],401);
        }

        return parent::render($request, $exception);
    }

我没有得到json的响应,而是在postman上得到了一个空白的响应,错误代码为500。我做错了什么?响应:

qfe3c7zg

qfe3c7zg1#

我通过确保服务器的响应是JSON来解决这个问题。因此我创建了一个名为ForceJsonResponse.php的中间件文件。代码如下:

public function handle(Request $request, Closure $next)
    {
        $request->headers->set('Accept', 'application/json');
        return $next($request);
    }

在$middleware上的Kernel.php中注册为

\App\Http\Middleware\ForceJsonResponse::class,

而在$routeMiddleware中,

'json.response' => \App\Http\Middleware\ForceJsonResponse::class,

相关问题