2015-12-30 6 views
10

Я реализовал простую систему аутентификации на Laravel 5.2, используя Sentinel.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 authencation с использованием \Auth::attempt. Но это тоже дает то же самое.

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

+0

Этот новый проект Laravel 5.2? Не могли бы вы показать свой файл 'routes.php'? –

+0

Являются ли ваши «логин» и «тест-логин» маршрутами внутри группы промежуточного программного обеспечения «web»? – patricus

+0

@ MarcinNabiałek: это свежий проект laravel 5.2, и я думаю, что у меня проблема. например, @patricus, мои маршруты не были в промежуточном программном обеспечении «web». Это сработало после того, как я переместил все свои маршруты в промежуточное ПО 'web' – Nauphal

ответ

21

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

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

Файл routes.php по умолчанию выглядит, как это в данный момент:

Route::group(['middleware' => ['web']], function() { 
    // here you should put your routes 
}); 

EDIT

Вы можете также посмотреть непосредственно на https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php в middlewareGroups собственности знать, какие посредники увольняются за web групповое промежуточное ПО

+3

Laravel получает отстой. Эти новые версии более сложны снова и снова. – manix

+1

@manix Я не согласен. Что вы ожидаете от новой версии программного обеспечения? Вероятно, новая функция и когда новые функции добавлены, вам всегда нужно добавить сложность в приложение. Однако я могу согласиться, что в документации отсутствует подробное описание, поэтому иногда трудно понять, как она работает. И всегда вы можете использовать более старую версию на Laravel, если функциональность вам подходит –

+3

Это необходимо записать в руководство по миграции как можно скорее. – dschu

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