Ответ 1
В Laravel 5.2 представлена концепция групп промежуточного программного обеспечения: вы можете указать, что одно или несколько промежуточных программ принадлежат группе, и вы можете применить промежуточного слоя в один или несколько маршрутов.
По умолчанию Laravel 5.2 определяет группу с именем web
, которая используется для группировки сеанса обработки промежуточного программного обеспечения и других утилит http:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::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
к маршруту