Check for Session timeout in Laravel

放肆的年华 提交于 2019-12-17 15:25:51

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!