我有以下axios
拦截器。
它检查所存储令牌的有效性。如果无效,则会触发请求以检索和存储刷新的令牌。
axios.interceptors.request.use(async config =>
if(checkValidity(localStorage.getItem('token')) === false) {
const response = await axios.get('http://foobar.com/auth/refresh');
localStorage.setItem('token', response.headers['token']);
config = getConfigFromResponse(response);
}
return config;
});
效果很好。问题是,如果我有很多带有无效令牌的请求,那么将完成对http://foobar.com/auth/refresh
的许多请求以刷新它。
是否可以将所有请求放入一个数组中,并在刷新完成后将其激发?
这个想法是为了避免捕获401错误并重播请求:这就是为什么我要在检索令牌时“保存”请求,然后在令牌准备就绪时将其触发。