fix: TKQC Chrome 무한 로그인 루프 해결 및 SSO 리다이렉트 수정
- Service Worker 제거: 캐시 간섭으로 인한 Chrome 인증 루프 방지 - sw.js를 자기 정리(캐시 삭제+해제) 버전으로 교체 - auth-manager.js에 SW 해제 코드 추가 (모든 페이지 즉시 적용) - page-preloader.js SW 등록을 해제 로직으로 전환 - Gateway 로그인 리다이렉트: isSafeRedirect() 함수로 서브도메인 절대 URL 허용 - *.technicalkorea.net만 허용하여 open redirect 방지 유지 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
// 서비스 워커 해제 (캐시 간섭으로 인한 인증 루프 방지)
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.getRegistrations().then(function(registrations) {
|
||||
registrations.forEach(function(registration) { registration.unregister(); });
|
||||
});
|
||||
if (typeof caches !== 'undefined') {
|
||||
caches.keys().then(function(names) {
|
||||
names.forEach(function(name) { caches.delete(name); });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 중앙화된 인증 관리자
|
||||
* 페이지 간 이동 시 불필요한 API 호출을 방지하고 인증 상태를 효율적으로 관리
|
||||
|
||||
@@ -18,12 +18,12 @@ class PagePreloader {
|
||||
init() {
|
||||
// 유휴 시간에 프리로딩 시작
|
||||
this.schedulePreloading();
|
||||
|
||||
|
||||
// 링크 호버 시 프리로딩
|
||||
this.setupHoverPreloading();
|
||||
|
||||
// 서비스 워커 등록 (캐싱용)
|
||||
this.registerServiceWorker();
|
||||
|
||||
// 기존 서비스 워커 해제 (캐시 문제 방지)
|
||||
this.unregisterServiceWorker();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -274,14 +274,20 @@ class PagePreloader {
|
||||
}
|
||||
|
||||
/**
|
||||
* 서비스 워커 등록
|
||||
* 기존 서비스 워커 해제 및 캐시 정리
|
||||
*/
|
||||
async registerServiceWorker() {
|
||||
async unregisterServiceWorker() {
|
||||
if ('serviceWorker' in navigator) {
|
||||
try {
|
||||
const registration = await navigator.serviceWorker.register('/sw.js');
|
||||
const registrations = await navigator.serviceWorker.getRegistrations();
|
||||
for (const registration of registrations) {
|
||||
await registration.unregister();
|
||||
}
|
||||
// 모든 캐시 삭제
|
||||
const cacheNames = await caches.keys();
|
||||
await Promise.all(cacheNames.map(name => caches.delete(name)));
|
||||
} catch (error) {
|
||||
console.log('서비스 워커 등록 실패:', error);
|
||||
// 무시
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user