Сеанс входа в 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';

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

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

1 ответ

Решение

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

Пожалуйста, посмотрите на https://laravel.com/docs/5.2/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 промежуточное ПО группы

Другие вопросы по тегам