diff --git a/gateway/html/login.html b/gateway/html/login.html
index b275384..ccd0ba3 100644
--- a/gateway/html/login.html
+++ b/gateway/html/login.html
@@ -171,11 +171,30 @@
}
}
- // 이미 로그인 되어있으면 포털로 (쿠키 또는 localStorage 체크)
+ // 토큰 만료 확인
+ function isTokenValid(token) {
+ try {
+ var payload = JSON.parse(atob(token.split('.')[1]));
+ return payload.exp > Math.floor(Date.now() / 1000);
+ } catch (e) {
+ return false;
+ }
+ }
+
+ // 이미 로그인 되어있으면 포털로 (쿠키 또는 localStorage 체크 + 만료 확인)
var existingToken = ssoCookie.get('sso_token') || localStorage.getItem('sso_token');
if (existingToken && existingToken !== 'undefined' && existingToken !== 'null') {
- var redirect = new URLSearchParams(location.search).get('redirect');
- window.location.href = redirect || '/';
+ if (isTokenValid(existingToken)) {
+ var redirect = new URLSearchParams(location.search).get('redirect');
+ window.location.href = redirect || '/';
+ } else {
+ // 만료된 토큰 정리
+ ssoCookie.remove('sso_token');
+ ssoCookie.remove('sso_user');
+ ssoCookie.remove('sso_refresh_token');
+ localStorage.removeItem('sso_token');
+ localStorage.removeItem('sso_user');
+ }
}