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

永康市括鑫工贸有限公司 2026/09/09 20:32:00

一、退出要实现的操作

(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) } )

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


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

深圳网站建设网站建设维护

5分钟精通游戏自动化:MaaYuan智能助手完全攻略【免费下载链接】MaaYuan代号鸢 / 如鸢 一键长草小助手项目地址: https://gitcode.com/gh_mirrors

2026/06/30 11:46:57

房产网站建设广东网站建设

三极管不只是开关:深入理解其工作原理与β值测量实战你有没有遇到过这样的情况?焊接好一个放大电路,通电后却发现输出信号失真、增益远低于预期,甚至三

2026/06/30 10:13:19

小企业网站建设梧州网站建设

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存࿰

2026/06/30 12:03:29

诸城网站建设青岛网站建设公司

还在为每次纪念币预约时的手忙脚乱而烦恼吗?这款基于Python的纪念币预约自动化工具将彻底改变你的预约体验,让你轻松实现预约自由,再也不用担心错过心仪的纪念币

2026/06/30 10:56:22

网站建设哪家公司好甘肃网站建设

为什么越来越多开发者选择PaddlePaddle做计算机视觉?在智能制造工厂的质检线上,一台边缘设备正以每秒30帧的速度识别电路板上的微小缺陷;城市的交通监控

2026/06/30 13:44:07

网站建设教程河南网站建设公司

JFET源极跟随器设计实战:从原理到电路搭建,新手也能轻松上手你有没有遇到过这样的问题?一个微弱的传感器信号,刚接上放大电路就“变了样”——幅度

2026/06/30 13:20:35

南昌网站建设公司呼和浩特网站建设

BSD 打印系统架构与操作指南1. 处理系统混淆的打印机当创建的打印机使系统陷入混淆时,最佳解决办法是彻底移除该目标并重新开始。但有时系统混乱程度过高,甚至移除打印机都变得困难。此时可采用以下强力方法

2026/06/30 12:19:00

昆山网站建设巴中网站建设

在 C# / .NET 里,死锁的“四个必要条件”其实很好理解,把它们看成导致“互相卡住”的四块拼图——四块都存在时,才会真的卡死。只要你在设计里打碎其中一块

2026/06/30 13:41:07

惠州网站建设徐州网站建设

PaddlePaddle自定义算子开发指南:GPU加速核心运算在现代深度学习系统中,模型的性能瓶颈早已不再局限于算法结构本身。随着工业级应用对推理延迟、吞吐量和资源利用率的

2026/06/30 10:43:21