Сеанс входа в Laravel 5.2 не сохраняется

Я внедряю простую систему аутентификации на Laravel 5.2, используя часовой.

// 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';

Я даже пытался реализовать дефолтную аутентификацию Laravel, используя \Auth::attempt, Но это также дает то же самое.

Любая помощь в этом очень ценится.

10

Решение

В Laravel 5.2 вам нужно подать заявку web Группа была посредником для всех ваших маршрутов, которые вы не хотите, чтобы сеансы работали. Это основное отличие от Laravel 5.1.

Пожалуйста, посмотрите на https://laravel.com/docs/5.2/routing#basic-routing

На данный момент файл routs.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 промежуточное ПО группы

21

Другие решения

Других решений пока нет …