当用户理想时,如何为Laravel中的每个用户设置不同的自动注销时间

时间:2018-11-19 09:36:10

标签: javascript jquery laravel laravel-5 laravel-5.2

我个人资料中的每个用户都有分钟的时间,该时间之后该用户应自动注销。

示例:

用户1:自动注销时间=> 60分钟

用户2:自动注销时间=> 120分钟

用户3:自动注销时间=> 150分钟

因此,登录后,用户1应在登录60分钟后退出,用户2应在120分钟后退出,用户3应在150分钟后退出。有谁知道如何实现这一目标?

我正在考虑为每个登录请求从session.php文件更改会话生存期,但是不知道它是否有效。

谢谢。

1 个答案:

答案 0 :(得分:2)

为此,您可以使用setInterval JavaScript函数

    var timeoutSeconds = <?php echo Session::get('timeoutSeconds'); ?>
    var _idleSecondsCounter = 0;

    window.setInterval(CheckIdleTime, timeoutSeconds);

    function CheckIdleTime() {
        _idleSecondsCounter++;
        var oPanel = document.getElementById("SecondsUntilExpire");
        if (oPanel)
            oPanel.innerHTML = (IDLE_TIMEOUT - _idleSecondsCounter) + "";
        if (_idleSecondsCounter >= IDLE_TIMEOUT) {
            document.getElementById('logout-form').submit();
        }
    }

在登录控制器中,您可以像这样设置会话

 $userCount = 1;

 $timeOutSeconds = 60 * $userCount;

 Session::put('timeoutSeconds', $timeOutSeconds);

对于服务器端

在Laravel中创建后台作业,并在登录方法后执行延迟分派。

Delayed Job Dispatch