Laravel身份验证会话超时

Laravel身份验证会话超时,laravel,session,authentication,Laravel,Session,Authentication,我在这方面看到了几个问题,到目前为止,所有的回答似乎都集中在下一个用户操作的过期检测上。 不管能否做到这一点,我想要的是让服务器端代码检测过期,然后强制刷新用户屏幕。从概念上讲,这个过程是这样的: 在服务器端检测到过期 或者,向用户发送一条消息,询问他们是否希望继续。如果没有响应,强制注销过程并相应地通知用户。如果用户确认他们希望保持会话,则模拟一些活动来重置过期时间。如果没有消息发送,只需强制一个新屏幕 在我的例子中,我使用Auth登录并向用户授予管理权限。这包括访问维护表单/按钮 基本上,我

我在这方面看到了几个问题,到目前为止,所有的回答似乎都集中在下一个用户操作的过期检测上。 不管能否做到这一点,我想要的是让服务器端代码检测过期,然后强制刷新用户屏幕。从概念上讲,这个过程是这样的:

  • 在服务器端检测到过期
  • 或者,向用户发送一条消息,询问他们是否希望继续。如果没有响应,强制注销过程并相应地通知用户。如果用户确认他们希望保持会话,则模拟一些活动来重置过期时间。如果没有消息发送,只需强制一个新屏幕
  • 在我的例子中,我使用Auth登录并向用户授予管理权限。这包括访问维护表单/按钮

    基本上,我不想要的是一个屏幕,因为它是过期前留下的,提示用户a)仍然登录,b)显示他们当时正在做的事情的详细信息。如果用户具有特殊权限,则这些权限在过期后不应保持可见。例如,管理员正在更改用户的个人详细信息并被呼叫离开。考虑到他/她本应终止流程并注销,如果他们未能做到这一点,则不应将详细信息留在屏幕上,以便其他人稍后看到他们

    理想的情况是某种形式的事件侦听器,但即使如此,我也不确定如何在不运行JS计时器循环的情况下强制进行屏幕更改

    我想我不是唯一一个有这种要求的人,所以我的问题是


    如何在Laravel 5的约束范围内处理此类需求?

    会话的默认值在config/session.php下定义。您可以使用config助手函数
    config('session.life')
    获取该值

    在您的情况下,您需要在客户端(javascript)上检查会话时间

    下面是一个在会话到期前刷新页面的代码示例。此代码用于刀片模板

    @if (Auth::check()) 
        <script>
        var timeout = ({{config('session.lifetime')}} * 60000) -10 ;
        setTimeout(function(){
            window.location.reload(1);
        },  timeout);
    
    
    
        </script>
    @endif
    
    @if(Auth::check())
    变量超时=({config('session.lifety')}*60000)-10;
    setTimeout(函数(){
    窗口。位置。重新加载(1);
    },超时);
    @恩迪夫
    
    您可以通过对话框调整代码,以确认用户是否希望延长会话时间,并通过ajax获取或刷新会话时间