Laravel API 返回 JSON 格式的响应-不问归期_

Passport 做的 API 认证,用 Postman 测试 API 时,在没有获取 token 的情况下访问接口,会自动跳转到登录界面,这显然不是我想要的,虽然可以设置 Headers 解决,但是我希望即使在浏览器端测试 API ,也是返回 json 格式的错误信息,而不是跳转到登录界面。

下面是解决办法:

1、新建中间件 JsonResponse

php artisan make:middleware JsonResponse


2、编辑 app/Http/Middleware/JsonResponse 文件:

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class JsonMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->is('api/*')){
            $request->headers->set('Accept', 'application/json');
        }
        return $next($request);
    }
}

3、把 JsonResponse 添加到 Kernel 中,编辑 app/Http/Kernel:

protected $middleware = [
		......
		
        //Application Middleware
        \App\Http\Middleware\JsonResponse::class,
    ];

再次访问接口,会有如下响应:

{
  "message": "Unauthenticated."
}

————————————————
原文链接:https://blog.csdn.net/h20101988/java/article/details/85846430