質問

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?

役に立ちましたか?

解決

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.

他のヒント

Why not do this?

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

If a session times out then the name will no longer be set. You can then write some code to respond to $sessionTimeout == 1;

BTW, Specifically if you need the session lifetime,

Use this:

{{ session('lifetime') }}

When describing this,

Use this:

session(['User' => $user, 'lifetime' => 3600]);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top