В настоящее время, если я бездействую в своем веб-приложении достаточно долго, моя сессия истекает. При повторном взаимодействии я получаю экран с сообщением об ошибке тайм-аута, а не перенаправляет меня на домашнюю страницу.
В моем файле rout.php я использую это:
Route::filter('authenticate', function() {
if ( !Session::has('user') && Session::get('user')->id ) { // return true if user not logged
return Redirect::to('/');
}
});
Моя логика неверна?
Ваше выражение никогда не будет оцениваться как истинное. Вы в основном говорите это по-английски:
Если в сеансе нет значения с ключом «Пользователь», а значение сеанса с ключом пользователя имеет идентификатор, то выполните …
Либо есть значение сеанса, которое имеет ключ 'User'
или нет, но вы не можете иметь оба пути. Я думаю, что вы хотите сказать что-то вроде этого:
if ( !Session::has('user') || !Session::get('user')->id )
Это выполнит перенаправление при двух обстоятельствах:
Других решений пока нет …