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

安徽贵联建筑劳务有限公司 2026/09/09 19:26:53

一、退出要实现的操作

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

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


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

扬州网站建设网站模板建设

FSearch快速文件搜索工具:Linux用户的终极配置指南【免费下载链接】fsearchA fast file search utility for Unix-like systems

2026/06/30 12:05:59

企业网站建设方案网站建设总结

NVIDIA Profile Inspector深度指南:解锁显卡隐藏性能的5个关键步骤【免费下载链接】nvidiaProfileInspector项目地址: https://gitco

2026/06/30 13:42:06

网站建设案例东营网站建设

Linux系统下最简PyTorch环境搭建:Miniconda-Python3.10实战记录在现代AI开发中,一个常见的场景是:你刚拿到一台新的Linux服务

2026/06/30 10:30:20

昆山网站建设巩义网站建设

8个降AI率工具,自考人必看!AI降重工具:自考人论文的“隐形助手”在当前学术写作中,随着AI技术的广泛应用,越来越多的论文被系统

2026/06/30 13:49:07

长沙市网站建设公司渭南网站建设

JLink烧录STM32闪存:从原理到实战的完整指南你有没有遇到过这样的场景?代码改了十几版,编译通过了,但一烧录就失败——“Cannot co

2026/06/30 11:50:57

东莞手机网站建设大庆网站建设

深度学习环境搭建新范式:从 PyTorch 到 GPU 加速的无缝实践在深度学习项目启动的第一天,你是否也经历过这样的场景?满怀热情地打开电脑,

2026/06/30 12:43:32

西安网站建设北京网站建设公司

Pingdom网站监控服务确保IndexTTS 2.0对外接口始终在线在AI语音技术加速落地的今天,一个令人头疼的问题依然普遍存在:你精心训练的语音合成模型明明运行正常&#

2026/06/30 11:00:53

海口网站建设模板网站建设

基于labview的Matlab script绘制的电机、控制器、系统效率MAP图,源码基于2018版开发,附赠测试原始数据在搞电机控制相关项目的时候,效率M

2026/06/30 14:01:38

网站建设设计网站建设套餐

想要让你的安卓手机电池寿命延长2-3年吗?Battery Charge Limit是一款专门为安卓设备设计的开源应用,通过智能控制充电上限来保护电池健康。这款应用能够在你设

2026/06/30 11:43:28

静安网站建设广东网站建设

Equalizer APO音频调校全攻略:从零基础到专业配置【免费下载链接】equalizerapoEqualizer APO mirror项目地址: https://gitcode.c

2026/06/30 13:17:35