Axios 拦截器标头

时间:2021-04-11 23:53:36

标签: javascript node.js axios interceptor

我遇到了一个问题,interceptors.response 正在发送一个 post 请求,但是带有在请求标头中设置的 accessToken。为什么它没有在响应中被覆盖?

// Request
axios.interceptors.request.use(
  (config) => {
    if (accessToken) {
      config.headers["Authorization"] = `Bearer ${accessToken}`;
    }
    return config;
  },
  (error) => {
    Promise.reject(error);
  }
);

// Response
axios.interceptors.response.use(
  (response) => {
    return response;
  },
  function (error) {
    const originalRequest = error.config;
    if (
      refreshToken &&
      error.response.status === 401 &&
      !originalRequest._retry
    ) {
      originalRequest._retry = true;
      return axios
        .post(
          `${baseUrl}/auth/token`,
          { },
          {
            // Not changing. Sending the accessToken instead
            headers: {
              Authorization: `Bearer ${refreshToken}`,
            },
          }
        )
        .then((res) => {
          if (res.status === 200 ) {
            console.log("Access token refreshed!");
            return axios(originalRequest);
          }
        });
    }
    return Promise.reject(error);
  }
);

0 个答案:

没有答案