From afe0a377db39cd71e3384adff3e72d7e036b8348 Mon Sep 17 00:00:00 2001 From: ysCha Date: Fri, 3 Apr 2026 16:20:12 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=90=EB=8F=99=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8,=20=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83=20=EC=B6=94?= =?UTF-8?q?=EC=A0=812?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useLogout.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/hooks/useLogout.js b/src/hooks/useLogout.js index 9b2d638e..08ef1cc3 100644 --- a/src/hooks/useLogout.js +++ b/src/hooks/useLogout.js @@ -6,6 +6,11 @@ import { useAxios } from '@/hooks/useAxios' import { logout } from '@/lib/authActions' import Cookies from 'js-cookie' +/** + * 로그아웃 처리 Hook + * - 로그아웃 API 호출 후 성공/실패 상관없이 로그아웃 처리 + * - Header, ChangePasswordPop 등에서 공통으로 사용 + */ export function useLogout() { const [sessionState] = useRecoilState(sessionStore) const [stuffSearch, setStuffSearch] = useRecoilState(stuffSearchState) @@ -15,22 +20,24 @@ export function useLogout() { const logoutProcess = async () => { const param = { loginId: sessionState.userId, - requestId: Cookies.get('sessionId'), + requestId: Cookies.get('sessionId'), // 로그인 시 저장한 sessionId } + // 로그아웃 API 호출 (실패해도 로그아웃 진행) try { await promisePost({ url: '/api/login/v1.0/logout', data: param }) } catch (error) { console.log('logout api error:', error) } + // 물건검색 상태 초기화 setStuffSearch({ ...stuffSearch, code: 'DELETE', }) - Cookies.remove('sessionId') - await logout() - window.location.href = '/login' + Cookies.remove('sessionId') // sessionId 쿠키 삭제 + await logout() // iron-session 세션 파기 + window.location.href = '/login' // 로그인 페이지로 이동 (full reload) } return { logoutProcess }