news 2026/6/15 6:56:04

一篇文章搞懂退出功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一篇文章搞懂退出功能

一、退出要实现的操作

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

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


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

聚焦物流可信数据空间-推动物流数据开放互联降本增效

关于推动物流数据开放互联 有效降低全社会物流成本的实施方案物流是实体经济的“筋络”,联接生产和消费、内贸和外贸。推动物流数据开放互联,构建物流可信数据空间,是提升资源配置效率、畅通实体经济循环的核心举措。建立以物流可信数据空间为…

作者头像 李华
网站建设 2026/6/15 11:23:04

15、Samba的用户认证与密码管理

Samba的用户认证与密码管理 1. Samba的用户认证安全级别 Samba支持四种网络安全级别,用于处理用户认证:共享级、用户级、服务器级和域级。这些安全策略可以通过全局安全选项来实现。 安全选项 参数 功能 默认值 范围 security domain, server, share, or user 指示…

作者头像 李华
网站建设 2026/6/15 12:32:56

16、Samba在Windows环境中的配置与应用

Samba在Windows环境中的配置与应用 1. Windows域登录概述 在传统的Windows 95/98工作组环境中,系统在用户登录时会直接接受输入的用户名和密码,不存在未经授权的用户。当新用户登录时,操作系统会要求设置新密码,并以此进行后续的身份验证,只有在连接其他共享资源时才会使…

作者头像 李华
网站建设 2026/6/15 1:18:27

企业ODI备案材料清单大全,商务部发改及外汇申请材料

无论是新设境外公司还是并购海外资产,企业出海投资,ODI备案是合规出境的“通行证”! 一、ODI备案三大审批部门及材料清单 ODI备案需依次通过发改委、商务部、外汇管理局的审核,材料清单因投资方式(新设/并购&#xff0…

作者头像 李华
网站建设 2026/6/15 12:31:05

并购项目ODI备案特殊材料:尽调报告及估值报告的核心作用

一、尽调报告:ODI备案的“风险扫描仪”尽调报告是并购项目的核心支撑材料,需由专业机构出具,全面揭示目标公司的法律、财务、业务及市场风险。1. 核心内容与监管重点法律尽职调查(Legal DD):审查目标公司注…

作者头像 李华
网站建设 2026/6/15 3:35:20

机械臂工作空间仿真分析-基于蒙特卡洛法的七自由度机械臂

机械臂工作空间仿真分析-6 蒙特卡洛法,七自由度机械臂。蒙特卡洛法玩机械臂就像在工地撒豆子——撒得越多,轮廓越清晰。今天咱们拿七轴机械臂开刀,用Python折腾个工作空间三维点云图。别被自由度吓到,这玩意儿的关键在于敢让随机数…

作者头像 李华