Laravel 5.2 сеанс входа в систему не сохраняется
Я использовал простую систему аутентификации на Laravel 5.2, используя Sentinel.
// Route : /login
$success = Sentinel::authenticate(array(
'email' => $email,
'password' => $password,
));
echo $success ? 'Login success' : 'Login failed';
Итак, приведенный выше код выводит Login success
после кода аутентификации. Но статус входа не сохраняется в других запросах. т.е.: если я проверю статус аутентификации от других запросов, он говорит, что я не вошел в систему!
// Route : test-login
echo \Sentinel::check() ? 'User is logged in' : 'User is not logged in';
Я даже пытался реализовать аутентификацию defar laravel с помощью \Auth::attempt
. Но это тоже дает то же самое.
Любая помощь по этому поводу очень ценится.
Ответы
Ответ 1
В Laravel 5.2 вам нужно применить группу web
middlewere для всех ваших маршрутов, которые вы не должны делать, чтобы сеансы работали. Это основное изменение от Laravel 5.1.
Посмотрите https://laravel.com/docs/5.2/routing#basic-routing
Файл route.php по умолчанию выглядит следующим образом:
Route::group(['middleware' => ['web']], function () {
// here you should put your routes
});
ИЗМЕНИТЬ
Вы также можете посмотреть https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php в свойстве middlewareGroups
, чтобы узнать, какие посредники увольняются для группового промежуточного программного обеспечения web