vue中使用js判断30分钟界面无操作自动退出或清楚用户信息重新登录

文章讲述了如何使用JavaScript检测用户在页面上的操作,通过设置onmousedown事件和定时器,当用户长时间未操作时自动退出系统并清除个人信息。通过比较时间戳判断超时并执行相应操作,如退出登录或显示提示。
摘要由CSDN通过智能技术生成

需求

        为了保证用户数据的安全性,很多时候当用户长时间不对页面进行操作的时候,自动退出系统,清除个人信息以防止有别人使用用户的数据。

流程

        使用 onmousedown 鼠标事件来检测用户是否有操作页面,写一个定时器间隔特定时间检测是否长时间未操作页面。如果长时间未操作页面,退出登录,清除token,返回登录页面。

        用户第一次登录或获取一个时间戳,用户每点击操作一次回重新获取一个新的时间戳,每隔一段时间回执行一次一下js方法判断当前时间戳是否大于之前时间戳30分钟,大于则清除用户信息。

let lastTime = new Date().getTime();
let currentTime = new Date().getTime();
let timeOut = 30 * 60 * 1000; //设置超时时间: 30分
// let timeOut = 5000; //设置超时时间: 30分

window.onload = function() {
	window.document.onmousedown = function() {
		localStorage.setItem("lastTime", new Date().getTime());
	}
};
export function checkTimeout() {
	currentTime = new Date().getTime(); //更新当前时间
	lastTime = localStorage.getItem("lastTime");
	console.log("当前时间-登录存的时间", currentTime - lastTime);
	console.log("设置超时时间", timeOut);
	 //判断是否超时
	if (currentTime - lastTime > timeOut) {
		// 超时可在此处做自己想要完成的业务,比如退出登录或者清除用户信息重新登录等
		console.log("超时", window.location.href);
		let url = window.location.href;
		let newUrl = url.match(/(\S*)#/)[1];
		console.log("超时之后的地址", url, newUrl)
		// window.open(newUrl + '#/login','_self');
		// 提示
		uni.showToast({
			title: "sadasd",
			icon: "error"
		})
	}
}

/* 定时器 间隔30秒检测是否长时间未操作页面 */
window.setInterval(checkTimeout, 5000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值