Check for Session timeout in Laravel

mattl picture mattl · Feb 4, 2013 · Viewed 30.4k times · Source

I was just wondering if anyone knew how to check for session timeout in Laravel.

You can check whether the session has a specific item:

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

But you can't check whether the session has expired. It would be nice so that I can report back to the user in a more specific way. "Your session has timed out, please start again."

Any thoughts?

Answer

Laurence picture Laurence · Feb 4, 2013

Just use the same logic as the session class itself.

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

Place this in your 'before' filter - and it will run on every request.