检查Laravel中的会话超时

时间:2013-02-04 14:30:14

标签: php laravel laravel-3

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

您可以检查会话是否包含特定项目:

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

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

有什么想法吗?

3 个答案:

答案 0 :(得分:26)

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

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

将其放在“之前”过滤器中 - 它将在每次请求时运行。

答案 1 :(得分:2)

为什么不这样做?

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

如果会话超时,则不再设置该名称。然后,您可以编写一些代码来响应$ sessionTimeout == 1;

答案 2 :(得分:0)

顺便说一句, 具体来说,如果您需要会话寿命,

使用此:

{{ session('lifetime') }}

在描述时,

使用此:

session(['User' => $user, 'lifetime' => 3600]);