Token过期后如何自动刷新并重发请求?

程序员淑宁 阅读 31

我在用 Axios 拦截器处理 Token 过期的问题,但每次 401 后手动跳登录页体验太差。有没有办法自动刷新 Token 并重试原来的请求?

我试过在响应拦截器里调刷新接口,拿到新 Token 后想重新发原请求,但不知道怎么把原来的请求“塞回去”。现在卡在这儿了,求指点!

axios.interceptors.response.use(
  response => response,
  async error => {
    if (error.response.status === 401) {
      const newToken = await refreshToken(); // 假设这个能拿到新 token
      localStorage.setItem('token', newToken);
      // 接下来怎么重新发送原来的请求?
    }
    return Promise.reject(error);
  }
);
我来解答 赞 9 收藏
二维码
手机扫码查看
1 条解答
程序员统思
保存原请求配置,刷新 token 后重发请求。搞定。
axios.interceptors.response.use(
response => response,
async error => {
if (error.response.status === 401) {
const originalRequest = error.config;
const newToken = await refreshToken();
localStorage.setItem('token', newToken);
originalRequest.headers['Authorization'] = Bearer ${newToken};
return axios(originalRequest);
}
return Promise.reject(error);
}
);
点赞
2026-03-22 09:01