2016-03-21 3 views
3

я использовал Laravel 5.1 для предыдущего проекта, и я не имел никаких проблем с ним, но теперь я установил Laravel 5,2 и у меня проблемы с функциональностью Идента поэтому я использую следующие маршрутыLaravel функциональность 5,2 аутентификации не работает

Route::group(['middleware' => ['web']], function() { 
    Route::controllers([ 
    "auth" => "Auth\AuthController", 
    "password" => "Auth\PasswordController" 
    ]) ; 
}); 

И это нормально, я могу видеть мою форму аутентификации, но когда я отправить форму на почту маршрут /auth/login сеанс не установлен, так что я получил редирект, но когда я проверяю, если я вошел в систему или не Auth::check() я false

ответ

2

Не только маршруты аутентификации должны использовать группу промежуточного программного обеспечения web; все маршруты, для которых требуются предусмотренные функциональные возможности, также должны использовать его.

Например

Route::group(['middleware' => ['web']], function() { 
    Route::auth(); 
}); 

Route::get('example-1', function() { 
    dd(Auth::check()); // always will return false 
}); 

Route::group(['middleware' => ['web']], function() { 
    Route::get('example-2', function() { 
     dd(Auth::check()); // works 
    }); 
}); 

Промежуточное группа веб просто собирает и работает много промежуточного слоя для вас.

'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, 
], 

Вы заметите, что StartSession::class выше. Это означает, что для каждого запроса, который вы ожидаете, данные сеанса будут доступны (для Auth и т. Д.) Вам нужно запустить это промежуточное программное обеспечение.

Либо использовать группу web, либо явно называть это промежуточное программное обеспечение для групп маршрута/маршрута, которые вы хотите.

1

использовать это Route::auth(); просто

+1

, если вы имеете в виду это 'Route :: группы ([ 'промежуточного' => [ 'веб']], функция() { Route :: Auth(); });' тогда я получил 'NotFoundHttpException' – aGoodRussianGuy

+0

Да, хорошо, я изменил URL-адрес, и теперь он работает, но у меня все еще есть' false', когда я проверяю 'Auth :: check()' – aGoodRussianGuy

+0

Используете ли вы 'Auth :: check()' в контроллере или маршрут с использованием промежуточного программного обеспечения для Интернета? –

Смежные вопросы