axios 拦截器应用——处理登录token没有或者过期

  • 拦截器的使用
    • 当我们访问某个地址页面时,有时会要求我们重新登录后再访问该页面,也就是身份认证失效了,如token丢失了,或者是token依然存在本地,但是却失效了,所以单单判断本地有没有token值不能解决问题。此时请求时服务器返回的是401错误,授权出错,也就是没有权利访问该页面。 我们可以在发送所有请求之前和操作服务器响应数据之前对这种情况过滤。
      axios.interceptors.request.use(
        config => {
          if (getToken()) {  // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了
            config.headers.Authorization = getToken()
          }
        },
        err => {
          return Promise.reject(err);
        }
      )
      
      axios.interceptors.response.use(
        response => {
          return response;
        },
        error => {
          if (error.response) {
            switch (error.response.status) {
              case 401:
                // 这里写清除token的代码
                router.replace({
                  path: '/login',
                  query: {redirect: router.currentRoute.fullPath}   //登录成功后跳入浏览的当前页面
                })
            }
          }
          return Promise.reject(error.response.data) 
        }
      )

       

转载于:https://my.oschina.net/u/4051564/blog/3029056

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值