我个人资料中的每个用户都有分钟的时间,该时间之后该用户应自动注销。
示例:
用户1:自动注销时间=> 60分钟
用户2:自动注销时间=> 120分钟
用户3:自动注销时间=> 150分钟
因此,登录后,用户1应在登录60分钟后退出,用户2应在120分钟后退出,用户3应在150分钟后退出。有谁知道如何实现这一目标?
我正在考虑为每个登录请求从session.php文件更改会话生存期,但是不知道它是否有效。
谢谢。
答案 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中创建后台作业,并在登录方法后执行延迟分派。