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) 
        }
      )
相关文章
相关标签/搜索