2014-11-10 7 views
2

У меня есть некоторые проблемы с убийством сеанса при выходе из Laravel. Что я делаю в моем методе выхода из системы:Laravel - вернуться после выхода из системы

Auth::logout(); 
Session::flush(); 

return View::make(..); 

Так в чем моя проблема. После того, как я выйду из системы и нажимаю «назад» в браузере, он возвращает меня на страницу, на которой я был, без запроса входа. Как я могу убить сеанс, чтобы после выхода из системы и возврата назад, чтобы снова спросить меня?

+1

Что происходит, когда вы обновите страницу после нажатия на кнопку назад? – ArjanSchouten

+0

http://laravel.com/docs/4.2/routing#route-filters Вам необходимо отфильтровать эту страницу и перенаправить для входа в систему –

+0

Используете ли вы фильтры маршрутов? – Jerodev

ответ

1

В соответствии с моим предыдущим комментарием Laravel содержит фильтр по умолчанию, называемый «auth», который проверяет подлинность пользователя и перенаправляет его в окно входа в систему, если он не является.

Вам просто нужно добавить фильтр к маршруту

Route::get('your route here', array('before' => 'auth', function() 
{ 
    return 'normal route behavior here' 
})); 
+0

Я все еще придерживался этого, я не знаю, почему, но моя проблема по-прежнему сохраняется. Я сделал то же самое, что и ваш. – Spurdow

+0

ahw nevermind его работа сейчас, все мои маршруты находятся под группой, и я добавил еще одну группу для выхода из системы, вложенную во все мои маршруты. – Spurdow

0

Вы можете изменить его:

Auth::logout(); 
Session::flush(); 
Redirect::back(); 

или ..

Redirect::route('login'); 
0

При нажатии на previeus botton в браузере он просто просматривает страницу previeus, но не запрашивает и не отвечает на сервер или с сервера.

Но если вы хотите Revok это использование действия Javascript как:

window.onbeforeunload = function() { return "You must login"; }; 
Смежные вопросы