'use client'; import { useEffect } from 'react'; /** * 로그아웃·세션 만료 후 뒤로가기 시 bfcache(back/forward cache) 복원으로 보호 페이지의 * 데이터가 재요청 없이 다시 보이는 것을 막는 최후 방어선. `no-store` 응답 헤더만으로는 * 일부 브라우저의 bfcache 복원을 막지 못해, `pageshow`의 `persisted` 플래그를 감지해 * 강제로 재요청(reload)시킨다 — 재요청은 proxy/DAL의 세션 검증을 다시 거친다. */ export function BfcacheGuard() { useEffect(() => { function handlePageShow(event: PageTransitionEvent) { if (event.persisted) { window.location.reload(); } } window.addEventListener('pageshow', handlePageShow); return () => window.removeEventListener('pageshow', handlePageShow); }, []); return null; }