如何对所有流明路由使用auth:api中间件?

时间:2019-08-06 20:13:50

标签: laravel lumen

我们安装了带有Tymon Jwt -package的Lumen安装程序,当我们使用“ auth:api”作为中间件名称在routes文件中实现中间件时,它运行良好。

但是,我们希望将该中间件自动添加到所有路由,并且仅将几条路由列入白名单以将其跳过。怎么做?其他全局中间件已安装在bootstrap / app.php中,但如果要使用auth:api -middleware,我们将找不到正确的类来调用。

我想这很简单,但是找不到。

1 个答案:

答案 0 :(得分:0)

要将其应用于所有路线,use a global middleware

  

如果您希望在对应用程序的每个HTTP请求期间运行中间件,只需在对$app->middleware()文件的bootstrap/app.php方法的调用中列出中间件类:

$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