laravel - Passport auth:api 中间件在 Laravel 5.8 升级后不再工作
问题描述
我最近将我的 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'];
});
我从来没有得到预期的回应。无论我在路由函数中放什么,我总是得到一个空的 200 响应。
顺便说一句,没有 auth:api 中间件的同一条路线也可以正常工作:
Route::get('test', function () {
return ['test' => 'test'];
});
似乎 api:auth 中间件不再起作用,我真的不知道为什么。
我的 API 在升级之前可以正常工作。我真的不知道发生了什么。
解决方案
您在header
该响应中提到应该采用json
格式,并且您正在返回带有non-json
格式的响应。
你应该使用
return response()->json(['test' => 'test']);
而不是
return ['test' => 'test'];
推荐阅读
- python-sphinx - 从标签和参考自动生成索引
- php - 如何在 WooCommerce 管理订单列表中的新列中添加“Local Pickup Plus 取货日期”
- docker - Drone - 使用drone.yml 使用自定义日期时间字符串格式命名 docker 图像标签
- java - Serenity 测试未使用 Serenity Parameterized Runner 运行
- java - 启动/停止服务后 Activity 中的本机崩溃
- excel - 传递给 Excel 的用于过滤的日期变量未正确激活
- viewer - 伪造查看器 isLayerVisible 始终为 false
- python - 在 jupyter 笔记本单元格上加载 markdown 文件
- symfony - Symfony 4 cookie、SameSite 和 firefox/chrome 警报
- javascript - 如何在 JavaScript 中实现以下条件: