const UNAUTHORIZED = [444, 401];
// 444나 401에러는 토큰 만료 에러임. 이 경우, 바로 로그인 페이지로 이동시킴. 근데 API 호출 시 alert 등으로 에러를 찍는다면 유저는 alert에 확인 버튼을 누르고 로그인으로 이동하게 되어서 고객 불만족임.
여기에서 401 에러 또한 위에 넣어둘 경우 무한루프가 돌 수 있음.
if (
UNAUTHORIZED.indexOf(error.response.status) > -1 &&
!originalRequest._retry
) {
originalRequest._retry = true;
return AuthAPI.refreshToken()
.then(async (res: any) => {
if (res.status === 200) {
const { access, refresh } = res?.data;
await StorageSetToken(access, refresh);
await setHeader(access);
return Axios(originalRequest);
}
})
.catch((err) => {
//refresh Token not verified
window.location.replace('/login');
console.log('# err : ', err);
console.log('# refresh token error');
StorageClearToken();
});
}