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

合肥欧派水泥预制品厂 2026/09/09 18:28:40

一、退出要实现的操作

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

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


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

苏州网站建设滨州网站建设

YOLOFuse HuggingFace Dataset Viewer 在线浏览数据在智能监控、夜间自动驾驶和搜救系统等现实场景中,单一视觉模态的局限性日益凸显——昏暗环境下可见光图像细

2026/06/30 13:49:37

网站建设策划方案茂名网站建设

@浙大疏锦行今天介绍下遗传算法,在你以后的论文写作中可以水一节,胆子大的人才可以水一章这些算法仅作为你的了解,不需要开始学习,如果以后需

2026/06/30 10:17:49

网站建设项目聊城网站建设

BetterNCM-Installer完整指南:如何快速解锁网易云音乐插件生态【免费下载链接】BetterNCM-Installer一键安装 Better 系软件项目地址: https:

2026/06/30 14:10:09

徐州网站建设东莞网站建设公司

ESP32 Arduino连接云平台:从踩坑到实战的完整通关指南你有没有遇到过这种情况?设备明明连上了Wi-Fi,却死活连不上MQTT;好不容易

2026/06/30 12:14:00

pc网站建设六安网站建设

JLink插上没反应?别急,带你穿透驱动识别的每一层你有没有遇到过这样的场景:手握一块崭新的STM32开发板,JLink调试器也插上了ÿ

2026/06/30 13:09:04

网站建设技术牡丹江网站建设

YOLO目标检测模型训练时如何监控loss曲线?实时GPU仪表盘在现代AI工程实践中,训练一个YOLO模型早已不只是“跑通代码”那么简单。尤其是在工业级部署场景中ÿ

2026/06/30 13:43:37

建设网站教程大良网站建设

视频压缩神器:3分钟学会90%体积缩减的终极技巧【免费下载链接】compressOConvert any video into a tiny size.项目地址: https://git

2026/06/30 13:13:34

网站建设收费湛江网站建设

5分钟掌握智能推荐:图神经网络在MXNet中的实战应用【免费下载链接】mxnet项目地址: https://gitcode.com/gh_mirrors/mx/mxnet还在为传统推荐算

2026/06/30 11:50:27

建设网站制作青岛网站建设公司

Dress Code数据集:50,000+高质量试衣样本如何推动AI时尚技术革新【免费下载链接】dress-code项目地址: https://gitcode.com/gh_mi

2026/06/30 13:41:37