如何为所有 Lumen 路由使用 auth:api 中间件?
How to use the auth:api middleware for all Lumen routes?
我们有一个带有 Tymon Jwt 包的 Lumen 安装,当我们使用“auth:api”作为中间件名称在路由文件中实现中间件时,它工作正常。
但是我们希望将该中间件自动添加到所有路由中,并且只将几个路由列入白名单以跳过它。它是如何完成的? bootstrap/app.php 中安装了其他全局中间件,但如果我们想使用 auth:api 中间件,我们找不到正确的 class 来调用。
我猜很简单,就是找不到。
要将其应用于所有路由,use a global middleware:
If you want a middleware to be run during every HTTP request to your application, simply list the middleware class in the call to the $app->middleware()
method in your bootstrap/app.php
file:
$app->middleware([
App\Http\Middleware\OldMiddleware::class
]);
tymon/jwt-auth
提供 several possible Tymon\JWTAuth\Http\Middleware
middleware classes 供您使用。选择最适合您的场景。
(您的中间件可以在内部免除某些路由,在这种情况下,可能使用类似 Request::is('foo/*')
的方法)。
要将其应用于大多数(但不是全部)路线,请将相关路线放在一个路线组中:
$router->group(['middleware' => 'auth:api'], function () use ($router) {
// most of your routes go here
});
// the handful of non-auth routes go here
我们有一个带有 Tymon Jwt 包的 Lumen 安装,当我们使用“auth:api”作为中间件名称在路由文件中实现中间件时,它工作正常。
但是我们希望将该中间件自动添加到所有路由中,并且只将几个路由列入白名单以跳过它。它是如何完成的? bootstrap/app.php 中安装了其他全局中间件,但如果我们想使用 auth:api 中间件,我们找不到正确的 class 来调用。
我猜很简单,就是找不到。
要将其应用于所有路由,use a global middleware:
If you want a middleware to be run during every HTTP request to your application, simply list the middleware class in the call to the
$app->middleware()
method in yourbootstrap/app.php
file:$app->middleware([ App\Http\Middleware\OldMiddleware::class ]);
tymon/jwt-auth
提供 several possible Tymon\JWTAuth\Http\Middleware
middleware classes 供您使用。选择最适合您的场景。
(您的中间件可以在内部免除某些路由,在这种情况下,可能使用类似 Request::is('foo/*')
的方法)。
要将其应用于大多数(但不是全部)路线,请将相关路线放在一个路线组中:
$router->group(['middleware' => 'auth:api'], function () use ($router) {
// most of your routes go here
});
// the handful of non-auth routes go here