美文网首页
刷新token后继续上次失败的请求

刷新token后继续上次失败的请求

作者: 海豚先生的博客 | 来源:发表于2020-07-21 10:53 被阅读0次

场景描述

  • 页面请求接口时,后台返回token过期的状态码,在拦截器中调接口刷新token,并继续上次的页面请求,将结果返回到页面
    响应拦截器中的关键代码
      
      if (token过期的状态码) {
        return new Promise((resolve, reject) => {
          // 调接口刷新token
          net.post("xxx/refreshToken", data, res => {
            if (刷新token接口成功的状态码) {
              // 存入sessionStorage
              sessionStorage("token", res.data.token);
              // 将headers中的token替换
              response.config.headers.token = res.data.token
              response.config.headers["content-type"] = "application/json;application/x-www-form-urlencoded;charset=UTF-8;application/javascript";
              // 传递给then
              resolve(response.config)
            }
          })
        }).then(config => {
          return new Promise((resolve, reject) => {
            // 继续上次的请求,将结果返回到页面,页面通过.then接收结果
            axios(config).then(res => {
              resolve(res)
            })
          })
        })
      } else {
        // console.log('拦截器,正常返回')
        return response;
      }

相关文章

网友评论

      本文标题:刷新token后继续上次失败的请求

      本文链接:https://www.haomeiwen.com/subject/yrzbkktx.html