我正在尝试使用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响应?
答案 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
});