响应拦截器处理token 过期的小技巧

1:约定好token失效或者错误的验证码。

// 在响应拦截器中 我们约定的是401表示token的问题
	service.interceptors.response.use(
  response => {
	//公共方法......
	//水无常势,方法不一,不多赘述
    return response;
  },
  (error) => {

    if (error.response.status === 401) {
        ElMessage.error('登录信息已过期!请重新登录');
        setTimeout(() => {
          localStorage.clear();//清除本地存储
          window.location.replace('#/login')// 导到登录页
        }, 1000)
    return Promise.reject(error)
  }
)
//基本处理完成,但是有问题。比如一个页面有三四个接口调用,那么'登录信息已过期!请重新登录'这句话会弹三四次。

2:处理多次提示的问题
思路:定义一个变量, 然后加一道判断。符合条件进来之后改变变量,解决多次弹出问题

let isType = true;
service.interceptors.response.use(
  response => {
    return response;
  },
  (error) => {
    if (error.response.status === 401) {
      if (isType) {
        isType = false;
        ElMessage.error('登录信息已过期!请重新登录');
        setTimeout(() => {
          localStorage.clear();
          isType = true;
          window.location.replace('#/login')
        }, 1000)
      }
    }
    return Promise.reject(error)
  }
)
// 问题迎刃而解。
写的不好,大家相互交流,相互进步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值