私はこのようなインターセプターを持っています
axios.interceptors.response.use(undefined, err=> {
const error = err.response;
console.log(error);
if (error.status===401 && error.config && !error.config.__isRetryRequest) {
return axios.post(Config.oauthUrl + '/token', 'grant_type=refresh_token&refresh_token='+refreshToken,
{ headers: {
'Authorization': 'Basic ' + btoa(Config.clientId + ':' + Config.clientSecret),
'Content-Type': 'application/x-www-form-urlencoded,charset=UTF-8'
}
})
.then(response => {
saveTokens(response.data)
error.config.__isRetryRequest = true;
return axios(error.config)
})
}
})
すべてが機能していますが、私の場合、1 つの React コンポーネントで 4 つの API 呼び出しがあり、このエラーが発生した場合、同じコードが 4 回実行されます。つまり、4 回更新トークンを送信して認証トークンを取得し、明らかに一度だけ実行したい