一、两种用户退出情况

1.点击按钮主动退出

2.token过期,或者被挤下线退出

二、行动方案

1.清除用户信息缓存

(1)清理vuex中的用户信息

a.创建一个mutation logout

(2)本地缓存

2.清理权限配置

3.返回登录页

  1. mutations:{
  2. logout(){
  3. this.commit('','')
  4. this.commit('',{})
  5. removeAllStorage()
  6. router.push('/login')
  7. }
  8. }

三、用户被动退出

1.前端主动介入

(1)登录后,记录时间戳
创建一个工具类模块包括:记录登录时时间戳、计算已登录时间的函数、判断是否已过期的函数
(2)调用接口时,判断是否已超有效期

  1. const tokenValid = isTokenValid()
  2. // 前端主动介入用户token失效退出
  3. if (!tokenValid) {
  4. store.dispatch('user/logout')
  5. }

2.前端被动介入

(1)已过有效期
(2)单点登录,被迫下线
(3)在相应拦截器中判断响应码是否为401

  1. service.interceptors.response.use(()=>{},(error)=>{
  2. const {code} = error
  3. if(code === 401){
  4. store.dispatch('user/logout')
  5. }
  6. })