Session State
로그인/로그아웃 상태 변화
signIn()과 signOut()은 버튼 이벤트에서
시작하지만, 실제 결과는 세션 판정, 화면 분기, 보호 라우트 접근까지
이어집니다.
Provider 인증
provider, callbackUrl을 넘기고 외부 인증 화면에서 돌아오기를 기다립니다.
세션 판정
useSession()이 로딩 중일 때는 보호 콘텐츠를 먼저
보여주지 않습니다.
인증 UI
사용자 정보와 로그아웃 버튼을 표시하고 필요한 데이터 요청을 허용합니다.
보호 라우트
서버 컴포넌트나 미들웨어에서 세션을 다시 확인해 접근을 확정합니다.
조건부 UI는 보안 경계가 아닙니다
화면에서 버튼을 숨기는 일과 서버에서 접근을 거부하는 일은 별도로 둡니다.
전환별 점검
공개 화면
세션이 없을 때 로그인 버튼과 안내만 남깁니다.
인증 화면
세션이 있을 때 사용자 이름, 이메일, 로그아웃 동작을
검증합니다.
보호 화면
세션이 없으면 서버 또는 라우트 보호 로직으로 이동을
막습니다.