问题
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?
回答1:
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.
回答2:
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;
回答3:
BTW, Specifically if you need the session lifetime,
Use this:
{{ session('lifetime') }}
When describing this,
Use this:
session(['User' => $user, 'lifetime' => 3600]);
来源:https://stackoverflow.com/questions/14688853/check-for-session-timeout-in-laravel