Axios响应拦截器刷新令牌一直触发的问题
创始人
2024-09-29 02:30:39
0

问题出现的原因是Axios的响应拦截器会在每一次请求时都执行,当需要刷新令牌的时候,也会执行响应拦截器,导致死循环的问题。

要解决这个问题,需要在响应拦截器中加入一个判断条件,判断当前请求是否已经在刷新令牌的过程中,如果是,则不进行刷新令牌的操作。

以下是示例代码:

let isRefreshing = false
let failedQueue = []

axios.interceptors.response.use(
  (response) => {
    return response
  },
  async (error) => {
    const originalRequest = error.config

    if (error.response.status === 401 && !originalRequest._retry) {
      if (isRefreshing) {
        // 如果正在刷新令牌,则将当前请求加入失败队列
        return new Promise(function (resolve, reject) {
          failedQueue.push({ resolve, reject })
        }).then(() => {
          return axios(originalRequest)
        }).catch((error) => {
          return Promise.reject(error)
        })
      }

      originalRequest._retry = true
      isRefreshing = true

      // 调用刷新令牌 API
      const response = await refreshToken()

      if (response.status === 200) {
        // 刷新令牌成功
        isRefreshing = false
        // 更新令牌
        saveToken(response.data)

        // 重新执行失败队列中的请求
        failedQueue.forEach((item) => item.resolve(axios(originalRequest)))
        failedQueue = []
        return axios(originalRequest)
      } else {
        // 刷新令牌失败
        isRefreshing = false
        failedQueue.forEach((item) => item.reject(error))
        failedQueue = []
        return Promise.reject(error)
      }
    }

    return Promise.reject(error)
  }
)

以上代码实现了一个简单的令牌刷新机制,能够有效地避

相关内容

热门资讯

透视脚本!WePOKer辅助软... 透视脚本!WePOKer辅助软件挂,wepoker可以透视吗,(终于清楚外挂辅助插件)是一款可以让一...
脚本辅助!wepoker的10... 脚本辅助!wepoker的10个必赢技巧,wepoker有挂吗透视软件,(关于外挂辅助下载)是一款可...
开挂透视!wepoker辅助插... 无需打开直接搜索;操作使用教程:开挂透视!wepoker辅助插件怎么用,wepoker发牌规律总结,...
辅助工具!wepoker透视辅... 您好:wepoker透视辅助器最新版本更新内容这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中...
开挂透视!wpk透视挂免费测试... 您好,微扑克辅助器免费最新版本更新内容这款游戏可以开挂的,确实是有挂的,需要了解加微【1367043...
开挂辅助工具!wpk德州最新版... 开挂辅助工具!wpk德州最新版,wepoker透视挂方法,(科技分享外挂辅助挂)是一款可以让一直输的...
开挂透视!wepoker开挂辅... 开挂透视!wepoker开挂辅助挂,wepoker辅助透视挂,(玩家科普外挂辅助挂)是一款可以让一直...
透视脚本!WePoker玩家总... 无需打开直接搜索加微信客服(136704302)咨询了解微扑克封号如何避免辅助器目前(微信:1367...
脚本辅助!wepoker好友局... wepoker好友局能不能透视是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的...
透视辅助!微扑克辅助工具免费版... >>您好:微扑克辅助工具免费版苹果软件加扣扣群确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...