Lumen:将中间件添加到打包定义的路由中
Posted
技术标签:
【中文标题】Lumen:将中间件添加到打包定义的路由中【英文标题】:Lumen: add middleware to package defined routes 【发布时间】:2017-10-10 15:41:09 【问题描述】:我在将中间件添加到供应商包的现有路由时遇到问题。我在 Lumen(Laravel 创建的微服务框架)之上构建了一个 API。我正在使用 Passport 进行 oauth 身份验证并导入了这个包:https://github.com/dusterio/lumen-passport 在 Lumen 中使用 Passport。我已经实现了一个用于请求令牌的自定义路由,并希望阻止对现有护照路由的请求:/oauth/token。但是我自己也需要该路由,以便从我的自定义路由重定向令牌请求。 我试图像这样覆盖现有路线:
$app->post('/oauth/token', [
'middleware' => 'reject',
'uses' => '\Dusterio\LumenPassport\Http\Controllers\AccessTokenController@issueToken'
]);
但这会在没有异常跟踪的情况下向我抛出 500。
我正在使用自定义路由来请求令牌,以便根据用户的角色设置令牌范围。我正在使用范围检查用户(或具有其他授权类型的应用程序)的角色,Passport 的正常令牌路由应该阻止除 Lumen self 之外的所有人。有了这个,只有 Lumen 应该能够设置范围。
TLDR:如何在 Lumen 中添加中间件来封装定义的路由。
【问题讨论】:
【参考方案1】:https://github.com/dusterio/lumen-passport 的最新合并支持为护照路由添加前缀。
我在我的 composer.json 中添加了"dusterio/lumen-passport": "dev-master",
,在 bootstrap/app.php 的末尾添加了Dusterio\LumenPassport\LumenPassport::routes($app, [ 'prefix' => 'api/v1/protected', 'middleware' => 'reject', ]);
。
有关更多信息,请参阅此问题:https://github.com/dusterio/lumen-passport/issues/31
【讨论】:
以上是关于Lumen:将中间件添加到打包定义的路由中的主要内容,如果未能解决你的问题,请参考以下文章