Проверка тайм-аута сеанса в Laravel

Мне просто интересно, знает ли кто, как проверить тайм-аут сеанса в Laravel.

Вы можете проверить, имеет ли сеанс определенный элемент:

if (Session::has('name'))
{
     $name = Session::get('name');
}

Но вы не можете проверить, закончился ли сеанс. Было бы неплохо, чтобы я мог сообщить об этом пользователю более конкретным образом. "Ваша сессия закончилась, пожалуйста, начните снова".

Любые мысли?

Ответы

Ответ 1

Просто используйте ту же логику, что и сам класс сеанса.

if ((time() - Session::activity()) > (Config::get('session.lifetime') * 60))
{
   // Session expired
}

Поместите это в свой фильтр "before", и он будет запускаться по каждому запросу.

Ответ 2

Почему бы не сделать это?

if (!Session::has('name'))
{
     $sessionTimeout = 1;
}

Если время сеанса заканчивается, имя больше не будет установлено. Затем вы можете написать код для ответа на $sessionTimeout == 1;