Laravel 5.8升级后Passport auth:api中间件不再工作

时间:2019-07-17 11:09:53

标签: laravel laravel-passport

我最近将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曾经可以完美运行。我真的不知道发生了什么事。

1 个答案:

答案 0 :(得分:0)

您在header中提到响应应该为json格式,并且您将以non-json格式返回响应。

您应该使用

return response()->json(['test' => 'test']);

然后

return ['test' => 'test'];