检查Laravel中的会话超时

mat*_*ttl 20 php laravel laravel-3

我只是想知道是否有人知道如何在Laravel中检查会话超时.

您可以检查会话是否具有特定项目:

if (Session::has('name'))
{
     $name = Session::get('name');
}
Run Code Online (Sandbox Code Playgroud)

但您无法检查会话是否已过期.这样会很好,以便我能以更具体的方式向用户报告."你的会议已超时,请重新开始."

有什么想法吗?

Lau*_*nce 27

只需使用与会话类本身相同的逻辑.

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

将它放在"之前"过滤器中 - 它将在每个请求上运行.

  • 它没有记录 - 我只是去了会话课,看了所有的功能,试图找出你的问题的答案:) (14认同)
  • 哇我以前从未见过:: activity().记录在哪里? (4认同)
  • @TheShiftExchange`调用未定义的方法Illuminate\Session\Store :: activity()`为什么会这样?我用*Laravel 4* (3认同)
  • @giannischristofakis:"活动"方法似乎已从Laravel消失了.[另一种方法记录在Laravel.io上](http://laravel.io/forum/04-27-2014-how-to-expire-session-data?page=1#reply-13586). (2认同)