我按照Laravel文档成功安装了Passport。一切正常,但是当我想通过scope
中间件保护路由时,我总是得到401 unauthorized
。
当我将中间件更改为auth:api
时,一切正常。
我检查了请求标头,Bearer
始终存在。
关于auth:api
中间件工作原理但scope
中间件不起作用的任何想法?
答案 0 :(得分:0)
实际上你需要同时使用它们来完成这项工作。您应该为整个API组留下auth:api
(这将验证令牌并找出它所属的用户),并为您想要的路由另外定义集scope
(或scopes
)中间件具有特定范围的安全。例如:
Route::group(['prefix' => 'api', 'middleware' => ['auth:api']], function () {
Route::get('/route-for-any-scope', 'Api\YourController1@index');
Route::get('/route-for-scope1-only', 'Api\YourController2@index')->middleware('scope:scope1');
}
以上假设,scope
按documentation注册了scopes
/ $routeMiddleware
个中间件。