我最近将Laravel应用程序从5.6升级到5.8,并且我的Passport API不再起作用。
'oauth / token'调用工作正常,我像以前一样获得了access_token。然后,在使用常规调用时:
$response = $http_client->request('GET', 'api/test', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $access_token,
],
]);
一条非常基本的受保护路线:
Route::middleware('auth:api')->get('test', function () {
return ['test' => 'test'];
});
我从未得到预期的答复。无论我在route函数中放置什么内容,我总是得到一个空的200响应。
这条没有auth:api中间件的路由也可以正常工作:
Route::get('test', function () {
return ['test' => 'test'];
});
似乎api:auth中间件不再起作用了,我真的不知道为什么。
在升级之前,我的API曾经可以完美运行。我真的不知道发生了什么事。
答案 0 :(得分:0)
您在header
中提到响应应该为json
格式,并且您将以non-json
格式返回响应。
您应该使用
return response()->json(['test' => 'test']);
然后
return ['test' => 'test'];