Skip to content

Commit 75d127c

Browse files
committed
fix: qa
1 parent 1166bb9 commit 75d127c

1 file changed

Lines changed: 38 additions & 41 deletions

File tree

apps/ticket/src/lib/axios/index.ts

Lines changed: 38 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,13 @@ instance.interceptors.response.use(
3636
async (error: AxiosError<AxiosErrorResponse>) => {
3737
if (typeof window === "undefined") {
3838
// Server에서는 기본 전파
39-
return Promise.reject(error);
40-
}
39+
console.error(error);
4140

42-
if (error.response?.status === 500) {
43-
// 결제 에러는 공통 alert 미노출
44-
if (error.response?.data.code === ERROR_CODE.PAYMENT) {
45-
return Promise.reject(error?.response?.data);
46-
}
47-
48-
alert("서버에러가 발생하였습니다. 관리자에게 문의해주세요.");
49-
50-
return Promise.reject(error?.response?.data);
51-
}
52-
53-
if (error.config?.url === API_URL.USER.REISSUE_ACCESS_TOKEN) {
5441
return Promise.reject(error);
5542
}
5643

44+
console.error("##error", JSON.stringify(error));
45+
5746
// 로그인이 필요한 요청이거나, 리프레시 토큰 모두 만료시 로그인 페이지로 이동
5847
if (isAxiosErrorResponse(error.response?.data)) {
5948
// 엑세스 토큰 없음
@@ -83,12 +72,30 @@ instance.interceptors.response.use(
8372

8473
return;
8574
}
86-
}
8775

88-
// 액세스 토큰 만료
89-
if (error.response?.data.code === ERROR_CODE.ACCESS_TOKEN_EXPIRED) {
90-
try {
91-
if (isAlertShown) {
76+
if (error.response?.data.code === ERROR_CODE.PAYMENT) {
77+
return Promise.reject(error?.response?.data);
78+
}
79+
80+
// 액세스 토큰 만료
81+
if (error.response?.data.code === ERROR_CODE.ACCESS_TOKEN_EXPIRED) {
82+
try {
83+
if (isAlertShown) {
84+
// 원래 요청 재시도
85+
const originalRequest = error.config;
86+
87+
if (!originalRequest) {
88+
return Promise.reject(error);
89+
}
90+
91+
return instance(originalRequest);
92+
}
93+
94+
// 엑세스 토큰 재발급
95+
isAlertShown = true;
96+
await refreshAccessToken();
97+
isAlertShown = false;
98+
9299
// 원래 요청 재시도
93100
const originalRequest = error.config;
94101

@@ -97,35 +104,25 @@ instance.interceptors.response.use(
97104
}
98105

99106
return instance(originalRequest);
100-
}
107+
} catch (error) {
108+
if (typeof window !== "undefined") {
109+
alert("로그인이 필요한 페이지입니다.");
101110

102-
// 엑세스 토큰 재발급
103-
isAlertShown = true;
104-
await refreshAccessToken();
105-
isAlertShown = false;
111+
// 엑세스 토큰 재발급 실패시 로그인 페이지로 이동
112+
safeLocalStorage.remove(IS_LOGINED);
106113

107-
// 원래 요청 재시도
108-
const originalRequest = error.config;
109-
110-
if (!originalRequest) {
111-
return Promise.reject(error);
112-
}
114+
window.location.href = "/login";
115+
isAlertShown = false;
113116

114-
return instance(originalRequest);
115-
} catch (error) {
116-
if (typeof window !== "undefined") {
117-
alert("로그인이 필요한 페이지입니다.");
118-
119-
// 엑세스 토큰 재발급 실패시 로그인 페이지로 이동
120-
safeLocalStorage.remove(IS_LOGINED);
121-
122-
window.location.href = "/login";
123-
isAlertShown = false;
117+
return;
118+
}
124119
}
125120
}
126121
}
127122

128-
return Promise.reject(error?.response?.data);
123+
if (error.response?.status === 500) {
124+
return Promise.reject(error?.response?.data);
125+
}
129126
},
130127
);
131128

0 commit comments

Comments
 (0)