Laravel 5.2引入了 中间件组 概念:您可以指定一个或多个中间件属于一个组,并且可以将中间件组应用于一个或多个路由
默认情况下,Laravel 5.2定义了一个名为的组
web,用于对中间件处理会话和其他http实用程序进行分组:
protected $middlewareGroups = ['web' => [ AppHttpMiddlewareEncryptcookies::class, IlluminatecookieMiddlewareAddQueuedcookiesToResponse::class, IlluminateSessionMiddlewareStartSession::class, IlluminateViewMiddlewareShareErrorsFromSession::class, AppHttpMiddlewareVerifyCsrfToken::class,],
因此, 如果要进行会话处理,则应对 要使用身份验证的所有路由 使用此中间件组 :
Route::group( [ 'middleware' => ['web'] ], function () { //this route will use the middleware of the 'web' group, so session and auth will work here Route::get('/', function () { dd( Auth::user() ); }); });LARAVEL版本的更新 > = 5.2.27
从Laravel
5.2.27版本开始,
routes.php默认情况下,其中定义的所有路由都使用
web中间件组。在以下方面实现
app/Providers/RouteServiceProvider.php:
protected function mapWebRoutes(Router $router){ $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web' ], function ($router) { require app_path('Http/routes.php'); });}因此,您不再需要手动将
web中间件组添加到路由中。
无论如何,如果要对路由使用默认身份验证,仍然需要将
auth中间件绑定到路由



