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

How to set Different Auto logout time for each user in Laravel when user is ideal

我在他的个人资料中为每个用户设置了一个以分钟为单位的时间,该用户应该会在该时间后自动注销。

示例:

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

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

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

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

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

提前致谢。

为此你可以使用 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