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

时间:2017-07-20 02:56:41

标签: laravel laravel-5.4 laravel-passport

我正在尝试使用laravel passport身份验证创建API,现在很容易使用laravel passport制作API。我正在使用个人访问令牌为API用户创建访问令牌。由于我的客户端和服务器都是一个,但是当API中未提供令牌时,它会重定向到laravel auth scaffold Flow UI创建的登录页面,我想返回带有“令牌未提供”的消息的json响应。

https://laravel.com/docs/5.4/passport#personal-access-tokens

我在路线中使用php artisan make:auth

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

2 个答案:

答案 0 :(得分:3)

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

Accept        application/json

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

现在,如果请求无效,它将返回JSON响应,如: {"错误":"未认证"}

但是没有简单的方法来定制护照回复。我正在寻找一些标准的方式,但还没有得到任何。

答案 1 :(得分:0)

我也遇到了同样的问题。要解决该重定向,您必须传递 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

});