如何创建一个jquery脚本,以便在一段时间不活动后自动注销用户?或者是否有一个jquery插件来执行此操作?它需要做类似的事情:
答案 0 :(得分:3)
您需要在此处考虑几个不同的方面。首先,如果用户只是关闭浏览器或该人使用的计算机死亡会发生什么?如果用户在30分钟内访问该页面,该人是否仍应登录?
假设用户应该登录30分钟,无论如何。最简单的方法是在身份验证cookie上设置cookie超时。请记住在每个页面刷新时更新超时。并使用jQuery计时器检查cookie是否仍然有效,或者只是跟踪用户的登录时间。
所以,jQuery timers,您可以在每个页面上加载刷新cookie,然后检查定时器/延迟是否执行,如果是,则删除cookie并显示模式框。
有很多方法可以做到这一点,使用定时器是一种方式。
$(this).oneTime(1800 , function() {
location.href='/logout'; // redirects to logout page.
});
另一个方法是使用服务器端检查,但你不会得到这个模型框,正如我所说,有很多方法,这一切都取决于你的喜好。
答案 1 :(得分:0)
我知道这是一个非常古老的问题,但对于那些寻找类似解决方案的人来说,如果他们在特定时间段内闲置,可能会有用吗
http://www.dotnetfunda.com/articles/show/3130/automatically-logout-when-user-is-idle-for-sometime
链接可能会消失,所以这里是代码 -
<script>
$(function () {
$("body").on('click keypress', function () {
ResetThisSession();
});
});
var timeInSecondsAfterSessionOut = 30; // change this to change session time out (in seconds).
var secondTick = 0;
function ResetThisSession() {
secondTick = 0;
}
function StartThisSessionTimer() {
secondTick++;
var timeLeft = ((timeInSecondsAfterSessionOut - secondTick) / 60).toFixed(0); // in minutes
timeLeft = timeInSecondsAfterSessionOut - secondTick; // override, we have 30 secs only
$("#spanTimeLeft").html(timeLeft);
if (secondTick > timeInSecondsAfterSessionOut) {
clearTimeout(tick);
window.location = "/Logout.aspx";
return;
}
tick = setTimeout("StartThisSessionTimer()", 1000);
}
StartThisSessionTimer();