在我的页面上,我总共调用了4个独立的APIS。因此,如果令牌到期,我将给予401状态以重试。
我正在使用AXIOS API请求。所以在我的拦截器代码中,我正在处理错误。对于401,我正在调用一个函数以获取新的accessToken并将其设置在标题中并重新调用API。
if (error.status===401) {
return getToken().then(response => { //getToken is a function to get new accessToken
// update the error config with new token
error.config.__isRetryRequest = true;
error.config.headers.token= localStorage.getItem("accessToken");
// retrying the api after new token
return client(error.config);
});
通过此代码,它每次在401发生时都会调用getToken函数,但假设我在一页中有4个api,那么我只想调用一次getToken并获取新令牌并更新所有4个api,然后重试所有4个。