当前位置: 首页 > 知识库问答 >
问题:

如何在json响应中使laravel passport auth重定向?

戎泰
2023-03-14

我试图创建API与laravel护照认证现在它是很容易使API与laravel护照。我使用个人访问令牌为API用户创建访问令牌。因为我的客户端和服务器都是一个,但是当API中没有提供令牌时,它重定向到由laravel auth scaffoldphp artisan make: auth创建的登录页面,我想返回带有消息令牌未提供的json响应。

https://laravel.com/docs/5.4/passport#personal-访问令牌

我正在路由中使用auth:api

如果没有提供令牌,如何传递API的json响应?

共有2个答案

戴嘉珍
2023-03-14

我也遇到了同样的问题。要解决重定向问题,必须传递json响应请求的头。为此,我决定如下所示制作中间件

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

上面的中间件将强制头部添加json响应,将api集合分组如下

Route::group(['middleware' => 'json.response'], function () {

 //your routes here

});
皮骏
2023-03-14

我也遇到了同样的问题。要解决该重定向问题,必须向请求的标头中传递一个额外的参数:

Accept        application/json

现在,它将返回JSON响应,而不是重定向到登录页面。

因此,如果请求无效,它将返回JSON响应,如:{“error”:“Unauthenticated.”

但是定制passport响应并不是一个简单的方法。我正在寻找一些标准的方法,但还没有找到。

 类似资料: