- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用“laravel/lumen-framework”:“5.7.*”
我有两个中间件,第一个 AuthTokenAuthenticate
应该应用于所有路由,因此它在 bootstrap/app.php
中定义如下
$app->middleware([
App\Http\Middleware\AuthTokenAuthenticate::class
]);
另一个中间件的定义如下
$app->routeMiddleware([
'auth.token' => Vendor\Utilities\Middleware\AuthToken::class
]);
并且仅适用于某些特定路线。
我需要先执行auth.token
,然后执行AuthTokenAuthenticate
,但我找不到执行此操作的方法,因为Lumen执行$app->中间件
首先路由。
Laravel 有 $middlewarePriority
这正是我所需要的,但是我如何在 Lumen 中处理它?
最佳答案
我认为这在 Lumen 中不可能以您想要的方式实现。我建议将中间件与 router group middleware options 一起使用.
<小时/>删除全局中间件注册
/bootstrap/app.php
$app->middleware([
//App\Http\Middleware\AuthTokenAuthenticate::class
]);
将两个中间件添加到路由中间件
/bootstrap/app.php
$app->routeMiddleware([
'auth.token' => Vendor\Utilities\Middleware\AuthToken::class,
'auth.token.authenticate' => App\Http\Middleware\AuthTokenAuthenticate::class
]);
创建两个路由组:一组仅包含 auth.token.authenticate
,一组同时包含 auth.token
和 auth .token.authenticate
.
/routes/web/php
$router->get('/', ['middleware' => 'auth.token.authenticate', function () use ($router) {
// these routes will just have auth.token.authenticate applied
}]);
$router->get('/authenticate', ['middleware' => 'auth.token|auth.token.authenticate', function () use ($router) {
// these routes will have both auth.token and auth.token.authenticate applied, with auth.token being the first one
}]);
我认为这是获得所需效果的最干净的方法。
关于php - Lumen中间件排序(优先),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877447/
我想在 lumen 中配置文件系统路径,而 lumen 没有提供配置文件夹设置文件系统本地路径怎么办? 最佳答案 在注册服务提供商之前,将以下内容放入您的 bootstrap/app.php 中: $
我想知道如何向 Lumen 中的路由添加查询参数 这是我创建的路线的示例 $app->get('/product/{apikey}','ProductController@getProduct');
我在 Lumen 中有一个类似于 Laravel 的错误消息标准文件夹。问题是没有使用来自那里的消息。如何让 Lumen 使用我的翻译来格式化消息? 现在,当我转储 $validator->error
默认情况下,Lumen “与 Laravel 相同” 有 myApp/public 目录来放置所有公共(public)文件( Assets )。 我想将该目录路径从 myApp/public 更改为
如何在 Lumen 中使用 where 方法 Route::get('/talent/{id}', 'TalentController@talent')->where('id', '[0-9]+');
默认情况下,Lumen “与 Laravel 相同” 有 myApp/public 目录来放置所有公共(public)文件( Assets )。 我想将该目录路径从 myApp/public 更改为
好的,我对 lumen 和 laravel 还很陌生,我正在尝试制作这个 api https://packagist.org/packages/codenexus/lumen-geoip在 lumen
我在 laravel/lumen 中声明了一个路由组,如下所示: $app->group(['middleware' => 'auth'], function () use ($app) {
我正在尝试集成 Oauth2 身份验证,发现 Taylor Otwell 使用 Laravel Passport 为它做了很好的工作。我正在尝试集成相同的内容以创建 REST API,我用谷歌搜索集成
如何在 Lumen 框架中对自定义数组执行验证。例如: 示例数组: $params = array('name' => 'john', 'gender' => 'male'); 我试过类似的方法,
我正在使用 Lumen 队列。要启动正在处理的作业,文档指示要从命令行运行队列监听器,如下所示: php artisan queue:listen 我想直接从我的代码触发我的队列作业进程。怎么做? 最
我在 Lumen 中,在一个 Controller 中,我想以一种简单易行的方式缓存计算结果,而不使用数据库或外部服务,所以我正在寻找将缓存保存在文件系统中。在 Laravel's documenta
流明日志被写入/storage/logs,默认情况下被命名为lumen.log。如何将文件名更改为xyz.log? 最佳答案 如注释中所述,日志文件的位置和名称是硬编码的。 现在,如果出于某些令人信服
我正在尝试在我的 Lumen 应用程序中启用基本用户身份验证用户名和密码。 在 app.php 文件中,以下内容已取消注释,如 https://lumen.laravel.com/docs/5.4/a
我正在尝试了解如何更改 Lumen 项目的默认存储位置(包括其子文件夹)。出于多种原因,考虑到生产 Web 服务器的当前配置,Lumen 在尝试写入日志或编译 Blade View 时抛出权限被拒绝的
我是 Lumen 和 Laravel 的新手,但我必须使用 Lumen 编写 REST API。我已经设置了 Controller ,但在使用记录器时遇到问题。我已遵循文档:Lumen docs 这是
我正在使用 Laravel 的 Lumen 框架学习后端开发,并且正在编写数据库播种类(class) Laravel's documentation 。下面是代码: 模型app\Photo.php n
我正在尝试在我公司的项目中实现单元测试,但我在尝试使用我的数据库中的一组单独数据时遇到了一些奇怪的问题。 由于我希望在受限环境中执行测试,因此我正在寻找在专用数据库中输入数据的最简单方法。长话短说,在
我正在使用 Lumen 和 Fractal 制作 API,但出现错误 Method attempt does not exist 尝试登录时。有人可以帮我解决这个问题吗?这是我的 Controller
我正在查看 Lumen 中的路由,它似乎无法正常工作,我无法确定这是一个问题还是我的理解。 $router->get('{adaptor}[/{id}]', ['uses' => 'MyCon
我是一名优秀的程序员,十分优秀!