/** * 로그아웃 Server Action이 백엔드 호출 실패를 `/login` 화면에 알릴 때 쓰는 쿼리 파라미터 이름. * * `app/(protected)/_actions.ts`(로그아웃 액션 — redirect URL에 값을 싣는다)와 * `app/(public)/login/page.tsx`(읽어서 LogoutNotice에 boolean prop으로 넘긴다) 양쪽이 같은 키를 * 참조해야 하므로, 리터럴 문자열이 두 파일에 중복되어 드리프트하는 것을 막기 위해 상수로 뺀다 * (session-cookie.ts의 SESSION_COOKIE_NAME과 동일한 목적). * * redirect()는 Server Action에서 즉시 던져지므로 클라이언트가 반환값을 읽을 기회가 없다 — 그래서 * 실패 신호를 반환값이 아니라 이동할 URL 자체에 싣는다(§ redirect와 토스트 표시가 경쟁하지 않게 * 하는 설계, app/(protected)/_actions.ts 참고). */ export const LOGOUT_ERROR_QUERY_PARAM = 'logoutError'; /** * 다른 곳에서 로그인되어 이 세션이 밀렸을 때 `/login` 화면에 알릴 쿼리 파라미터 이름. * LOGOUT_ERROR_QUERY_PARAM과 같은 이유로 상수로 둔다. */ export const SESSION_REVOKED_QUERY_PARAM = 'sessionRevoked'; /** 세션이 밀린 것을 감지했을 때 보내는 경로 — 쿠키를 지우고 `/login`으로 넘긴다. */ export const SESSION_REVOKED_PATH = '/logout/revoked';