网站建设策划方案广西网站建设

重庆及时雨暖通设备有限公司 2026/09/09 19:28:39

一、退出要实现的操作

(1)清理掉当前用户缓存数据

(2)清理掉权限相关配置

(3)返回到登录页

二、主动退出

主动退出指的是用户点击登录按钮之后退出

就是绑定点击退出事件,然后这个退出函数一般写在store中的user中的actions中,和登录的一样

import { removeAllItem } from '@/utils/storage' // 这个removeAllItem主要就是将window.localStorage.clear()清空 export default { state:(), mutations:(), actions:{ logout() { this.commit('user/setToken', '') this.commit('user/setUserInfo', {}) removeAllItem() router.push('/login') } } }

三、被动退出(token失效与单用户登录)

(1)主动处理——解决token失效,然后退出

在utils/auth.js中写入如下代码(处理token缓存时间)

import { TIME_STAMP, TOKEN_TIMEOUT_VALUE } from '@/constant' import { setItem, getItem } from '@/utils/storage' /** * 获取时间戳 */ export function getTimeStamp() { return getItem(TIME_STAMP) } /** * 设置时间戳 */ export function setTimeStamp() { setItem(TIME_STAMP, Date.now()) } /** * 是否超时 */ export function isCheckTimeout() { // 当前时间戳 var currentTime = Date.now() // 缓存时间戳 var timeStamp = getTimeStamp() return currentTime - timeStamp > TOKEN_TIMEOUT_VALUE }

在constant/index.js中

export const TIME_STAMP = 'timeStamp' export const TOKEN_TIMEOUT_VALUE = 1000 * 60 * 30 // 缓存时间30分钟

用户登录后设置时间

import { setTimeStamp } from '@/utils/auth' export default { namespaced: true, state: () => ({}), mutations: {}, actions: { login(context, userInfo) { 。。。 return new Promise((resolve, reject) => { 。。。 .then((data) => { 。。。 setTimeStamp() // 登录成功后设置时间戳 resolve() }) .catch((err) => { reject(err) }) }) }, 。。。 } }

在请求拦截器中主动介入(到达设置的时间节点后自动退出)

service.interceptors.request.use((config) => { 。。。 if (store.getters.token) { if (isCheckTimeout()) { store.dispatch('user/logout') return Promise.reject(new Error('token 失效')) } 。。。 } return config })

(2)被动处理——token失效

在响应拦截器中

service.interceptors.response.use( (response) => { 。。。 }, (error) => { if ( error.response && error.response.data && error.response.data.code === 401 ) { store.dispatch('user/logout') } ElMessage.error(error.message) return Promise.reject(error) } )

一般单用户登录也是用被动处理的,这里我也是在学习中,然后所用到的账号还是在多设备中可以登录的,处理单用户登录办法后续再补。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

海淀网站建设网站优化建设

HunyuanOCR在SROIE财务票据识别中的实战表现在企业财务自动化浪潮中,一张模糊的收据、一份跨国报销单,往往成为流程卡顿的起点。传统OCR系统面对五花八门的票据格式

2026/06/30 14:19:09

东营网站建设安徽网站建设

小米音箱智能升级指南:5步解决固件兼容性问题【免费下载链接】xiaogptPlay ChatGPT and other LLM with Xiaomi AI Speaker项目地址: h

2026/06/30 12:01:59

网站建设模板宝应网站建设

活动目录站点、复制与架构管理全解析在企业网络环境中,活动目录(Active Directory,简称AD)的有效管理至关重要,它涉及到站点与复制的管理以及活动目录域服务架构的管理。下面我们将详细介绍相

2026/06/30 14:09:39

淮北网站建设网站建设公司网站

VibeVoice-WEB-UI:如何用低帧率语音表示与对话式生成重塑长文本TTS在播客制作间里,两位主播正为下一期节目反复录制——语气不对重来,角色切换生硬

2026/06/30 13:53:07

无锡网站建设上海营销型网站建设

串口字符型LCD电平不匹配?别让一个电压毁了你的显示系统你有没有遇到过这种情况:明明代码写得没问题,UART配置也对,但接上串口字符型LCD后&

2026/06/30 12:43:32

开县网站建设网站外链建设

Bodymovin插件技术实现深度解析【免费下载链接】bodymovin-extensionBodymovin UI extension panel项目地址: https://gitcode.com/

2026/06/30 11:45:27

西安网站建设公司扬中网站建设

当千亿参数模型成为行业标配,你是否还在为漫长的训练周期而焦虑?当GPU资源消耗居高不下,你是否在寻找更高效的解决方案?今天,我们将

2026/06/30 13:23:35

外贸网站建设商务网站建设

让界面“呼吸”起来:用 QTimer::singleShot 实现控件的优雅延时启用你有没有遇到过这样的场景?用户刚打开一个设置向导,还没看清提示文字

2026/06/30 10:37:21

肇庆网站建设常德网站建设

想拥有一个能24小时自动回复微信消息的智能助手吗?现在,通过这个完整的教程,你可以在3小时内搭建一个功能强大的微信智能机器人自动回复系统,支持D

2026/06/30 11:11:24