Laravel护照范围中间件返回401

时间:2017-07-04 13:45:25

标签: laravel scope laravel-passport

我按照Laravel文档成功安装了Passport。一切正常,但是当我想通过scope中间件保护路由时,我总是得到401 unauthorized

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

我检查了请求标头,Bearer始终存在。

关于auth:api中间件工作原理但scope中间件不起作用的任何想法?

1 个答案:

答案 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');
}

以上假设,scopedocumentation注册了scopes / $routeMiddleware个中间件。