一、两种用户退出情况
1.点击按钮主动退出
2.token过期,或者被挤下线退出
二、行动方案
1.清除用户信息缓存
(1)清理vuex中的用户信息
a.创建一个mutation logout
(2)本地缓存
2.清理权限配置
3.返回登录页
mutations:{
logout(){
this.commit('','')
this.commit('',{})
removeAllStorage()
router.push('/login')
}
}
三、用户被动退出
1.前端主动介入
(1)登录后,记录时间戳
创建一个工具类模块包括:记录登录时时间戳、计算已登录时间的函数、判断是否已过期的函数
(2)调用接口时,判断是否已超有效期
const tokenValid = isTokenValid()
// 前端主动介入用户token失效退出
if (!tokenValid) {
store.dispatch('user/logout')
}
2.前端被动介入
(1)已过有效期
(2)单点登录,被迫下线
(3)在相应拦截器中判断响应码是否为401
service.interceptors.response.use(()=>{},(error)=>{
const {code} = error
if(code === 401){
store.dispatch('user/logout')
}
})