示例代码如下, 这些代码在模板, 比如base.html
{if condition="$Think.session.user"}
<!-- 已登录状态下, 设置页面30分钟未操作则自动执行退出登录 -->
<script>
var maxTime = 30*60; // seconds
var time = maxTime;
$('body').on('keydown mousemove mousedown', function (e) {
time = maxTime; // reset
});
var intervalId = setInterval(function () {
time--;
if (time <= 0) {
ShowInvalidLoginMessage();
clearInterval(intervalId);
}
}, 1000)
function ShowInvalidLoginMessage() {
$.get('{:url('index/userx/logout')}', {
}, function (res) {
console.log('已退出')
window.location.href="{:url('index/userx/login')}";
})
}
</script>
{/if}
这种方法, 适用于打开网页后, 然后电脑摆在30分钟未动的情况;
假如说登录后, 然后关闭这个网页, 过了30多分钟一看, 它可能还是登录状态, 它是在前端计算时间, 不是在后端计算时间.