Skip to content

Commit 06f3d60

Browse files
committed
alert 제거
1 parent f824747 commit 06f3d60

2 files changed

Lines changed: 20 additions & 12 deletions

File tree

src/api/globalFetch.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// src/api/globalFetch.js
22

3+
import { promptLogin } from "../utils/auth";
4+
35
// 1. 기존의 window.fetch 함수를 백업해둡니다.
46
const originalFetch = window.fetch;
57

@@ -9,17 +11,16 @@ window.fetch = async (...args) => {
911
const response = await originalFetch(...args);
1012

1113
// 4. 응답을 받은 후, 인증 실패(401/403)가 발생했다면
12-
if (response.status === 401 || response.status === 403) {
13-
// 이전에 localStorage에 저장된 토큰이 있을 때만 로그아웃 처리
14-
if (localStorage.getItem('token')) {
15-
localStorage.removeItem('token');
16-
localStorage.removeItem('username');
14+
if ((response.status === 401 || response.status === 403) && localStorage.getItem("token")) {
15+
localStorage.removeItem("token");
16+
localStorage.removeItem("username");
17+
localStorage.removeItem("userId");
18+
localStorage.removeItem("role");
19+
20+
window.dispatchEvent(new Event("dv:auth-updated"));
1721

18-
alert('세션이 만료되었습니다. 다시 로그인해 주세요.');
19-
// 현재 페이지를 새로고침하여 로그인 상태를 갱신합니다.
20-
// 로그인 페이지로 강제 이동시키는 것보다 사용자 경험이 더 나을 수 있습니다.
21-
window.location.reload();
22-
}
22+
const redirectTo = window.location.hash ? window.location.hash.replace(/^#/, "") || "/" : window.location.pathname || "/";
23+
promptLogin("세션이 만료되었습니다. 다시 로그인해 주세요.", { redirectTo });
2324
}
2425

2526
// 5. 원래 API를 호출했던 곳에 응답을 그대로 돌려줍니다.

src/utils/auth.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,14 @@ export function promptLogin(message = "로그인이 필요합니다.", options =
1616
}
1717
}
1818

19-
alert(resolvedMessage);
20-
window.dispatchEvent(new CustomEvent("dv:open-login-modal"));
19+
window.dispatchEvent(new CustomEvent("dv:open-login-modal", {
20+
detail: {
21+
message: resolvedMessage,
22+
redirectTo: resolvedOptions?.redirectTo || null,
23+
},
24+
}));
2125
window.dispatchEvent(new Event("dv:login-requested"));
26+
if (resolvedMessage) {
27+
console.info(resolvedMessage);
28+
}
2229
}

0 commit comments

Comments
 (0)