一、需求说明
昨天后端开发人员让我实现一个网页锁屏,当时我一头雾水,问他为啥搞的跟安卓系统一样。他的回复是"看起来帅点"。
首先我们梳理下逻辑,先来个简化版的,用户长时间未操作时,返回登录页
二、思路
使用 mouseover 事件来监测是否有用户操作页面,写一个定时器间隔特定时间检测是否长时间未操作页面,如果是,退出登陆,清除token,返回登录页
三、实现
【1】在util文件夹下创建一个storage.js封装localStorage方法
export default { setItem(key, value) { value = JSON.stringify(value); window.localStorage.setItem(key, value) }, getItem(key, defaultValue) { let value = window.localStorage.getItem(key) try { value = JSON.parse(value); } catch {} return value || defaultValue }, removeItem(key) { window.localStorage.removeItem(key) }, clear() { window.localStorage.clear() }, }
【2】在util文件夹下创建一个astrict.js
每隔30s去检查一下用户是否过了30分钟未操作页面
// 引入路由和storage工具函数 import storage from '@/utils/storage' import router from "@/common/router" let lastTime = new Date().getTime() let currentTime = new Date().getTime() let timeOut = 30 * 60 * 1000 //设置超时时间: 30分钟 window.onload = function () { window.document.onmousedown = function () { stroage.setItem("lastTime", new Date().getTime()) } }; function checkTimeout() { currentTime = new Date().getTime() //更新当前时间 lastTime = stroage.getItem("lastTime"); if (currentTime - lastTime > timeOut) { //判断是否超时 // 清除storage的数据(登陆信息和token) storage.clear() // 跳到登陆页 if(router.currentRouter.name == 'login') return // 当前已经是登陆页时不做跳转 router.push({ name: 'login' }) } } export default function () { /* 定时器 间隔30秒检测是否长时间未操作页面 */ window.setInterval(checkTimeout, 30000); }
【2】在main.js引入astrict.js
import Astrict from '@/utils/astrict' Vue.use(Astrict)
四、锁屏
实现网页锁屏的思路和上面自动退出登录类似,稍微改动实现如下:
【1】用户长时间未操作,弹出设置锁屏密码弹框设置锁屏密码
【2】密码(password)和锁屏状态(isLock)存入localStorage 和vuex
【3】设置成功后跳转到锁屏登录页
【4】 在路由里面判断vuex里面的isLock(为true锁屏状态不能让用户后退url和自行修改url跳转页面否则可以)
【5】用户在锁屏登录页输入刚刚设置的锁屏密码,即可解开锁屏
总结
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“vue实现用户长时间不操作自动退出登录功能的实现代码”评论...
更新动态
2025年01月15日
2025年01月15日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]