Laravel 护照:使用 api 守卫护照特定路线

Laravel Passport: use api guard for passport specific routes

我正在使用 laravel (5.6) 和 passport 编写 REST API。在文档中它说可以使用 json api 来提出特定于护照的请求(例如获取令牌、创建或编辑客户端等)。 (https://laravel.com/docs/5.6/passport#managing-clients)

然而,当我想在我的 angular 前端使用 REST 接口使用这些通行证路由时,出现 "Unauthenticated" 错误,同时使用正确的访问令牌。

我搜了一下passport类(主要是RouteRegistrar),发现他们一直在用web guard。 如何解决?

我搜索了是否可以以某种方式配置 Passport::routes(),但在文档中没有找到任何内容。那么唯一的解决方案是不使用 Passport::routes(); 并使用 auth:api 中间件而不是 auth:web 编写自定义路由吗?

好的,我发现了一些东西:

在boot下的AuthServiceProvider中,放入

Passport::routes(null,array('middleware'=> 'auth:api'));

而不只是

 Passport::routes()

这将中间件合并为选项。我把它留在这里以防其他人遇到这个问题。