저장된 token 을 바탕으로 rest api 통신을 진행하는중 401 에러, 즉 unauthorized 에러가 발생할 경우 토근정보만 다시 가져와서 retry 만 하게끔 할 필요가 생겼다.
axios 의 interceptor 활용
axios 가이드
restApi.interceptors.response.use(
(response) => {
return response;
},
(error: any) => {
//unauthorized error
if (error && error.response && error.response.status === 401) {
window.sessionStorage.removeItem("auth-token");
return updateToken().then((token) => {
if (token) {
window.sessionStorage.setItem("auth-token", token);
error.config.headers["X-Auth-Token"] = token;
return restApi.request(error.config);
} else {
return Promise.reject(error);
}
});
}
return Promise.reject(error);
}
);