Laravel passport范围中间件返回401

Laravel passport范围中间件返回401,laravel,scope,laravel-passport,Laravel,Scope,Laravel Passport,我遵循Laravel文档并成功安装了Passport。一切正常,但当我想通过作用域中间件保护路由时,我总是得到401个未授权 当我将中间件更改为auth:api时,一切都正常 我检查了请求头和始终存在的承载者 你知道为什么auth:api中间件可以工作,而scope中间件不能工作吗?实际上,你需要同时使用这两种中间件才能工作。您应该为整个api组保留auth:api,这将验证令牌并找出它所属的用户,并为要使用特定作用域保护的路由另外定义一个或多个作用域中间件。例如: Route::group([

我遵循Laravel文档并成功安装了Passport。一切正常,但当我想通过作用域中间件保护路由时,我总是得到401个未授权

当我将中间件更改为auth:api时,一切都正常

我检查了请求头和始终存在的承载者


你知道为什么auth:api中间件可以工作,而scope中间件不能工作吗?

实际上,你需要同时使用这两种中间件才能工作。您应该为整个api组保留auth:api,这将验证令牌并找出它所属的用户,并为要使用特定作用域保护的路由另外定义一个或多个作用域中间件。例如:

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');
}
以上假设,您已经按照在$routeMiddleware中注册了scope/scopes中间件