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

深圳羽卒科技有限公司 2026/09/09 20:14:10

一、退出要实现的操作

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

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


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

昆明网站建设网站建设与维护

Python图像处理完全指南:Pillow库从零到精通的8个实战技巧【免费下载链接】Pillow项目地址: https://gitcode.com/gh_mirrors/pil/Pill

2026/06/30 10:31:50

舟山网站建设网站品牌建设

项目规划中的故事管理与时间安排策略在项目规划和执行过程中,合理的时间安排以及有效的故事管理是确保项目顺利进行的关键因素。以下将详细探讨团队在时间安排、故事规划以及相关操作中的各种策略和方法。1. 时间

2026/06/30 10:17:19

网站建设哪家公司好网站建设 流程

从零开始玩转模拟电路仿真:Proteus元件库实战指南你有没有过这样的经历?手绘了一张完美的放大器电路图,满心期待地接上电源——结果LED不亮、信号失真、运放

2026/06/30 12:15:00

电子商务网站建设学校网站建设

BBDown深度解析:从入门到精通的B站下载全攻略【免费下载链接】BBDownBilibili Downloader. 一款命令行式哔哩哔哩下载器.项目地址: https://gitco

2026/06/30 12:22:31

建设局网站网站建设需要什么

附件1:咸阳师范学院本科毕业论文(设计)课题申报表二级学院:计算机学院教师姓名xx职称讲师学位硕士题目基于微信小程序的停车场管理系统设计与实现课

2026/06/30 11:20:55

网站建设 东莞网站建设相关

usb_burning_tool 配合 SPI 烧录的工厂实践:从原理到产线落地在智能硬件量产线上,时间就是成本。每一块主板下线前,最耗时、最关键的一环是什么

2026/06/30 10:52:22

西安网站建设舟山网站建设

各位,我后台私信真的要爆了。毫不夸张,最近十条有八条都在问我‘怎么降低ai率’。我跟你们说,风向是彻底变了。以前大家只担心Turnitin,现在

2026/06/30 10:52:52

成都网站建设徐家汇网站建设

卷积码编码器与软判决解码技术详解1. 灾难性编码器分析在卷积码的研究中,编码器的特性至关重要,其中灾难性编码器是一个需要重点关注的概念。1.1 G′₁ 编码器分析假设存在矩阵 (G’_1),我们来探讨

2026/06/30 12:16:00

龙岗网站建设物流网站建设

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:创建一个VIM Markdown工具包,集成AI辅助写作、实时

2026/06/30 12:36:32

网站建设策划书宜昌网站建设

Dify在家居装修建议生成中的美学判断力当一位年轻业主打开手机App,输入“我想把80平米的小两居装成现代简约风,预算20万,喜欢原木和浅灰”时,

2026/06/30 11:35:26