<aside> 💭

카카오 OAuth + 서버 검증 → oneTimeToken으로 Access / Refresh 교환 후 zustand / 쿠키로 관리하는 토큰 기반 로그인!!

</aside>

💡 사용자 인증 흐름

1️⃣ 사용자 카카오 로그인 시도

→ 사용자가 카카오로 로그인하기 버튼을 누르면 클라이언트가 카카오 서버, kauth.kakao.com/oauth 로 앱 키와 redirect url을 파라미터에 포함해 요청을 보내게 됨. 이때, redirect url는 서버로 설정해 인가 코드가 서버에게 전달되도록 함.

→ 이후 서버는 요청을 보낸 사용자가 회원인지 아닌지를 판별해서 클라이언트를 다시 리다이렉트 시킴 (리다이렉트 시킬 경로는 클라이언트가 서버에게 전달)

→ 회원이면 홈으로, 회원이 아니면 회원가입 페이지로 이동함!!

사용자가 회원가입 페이지로 이동했을 때! 서버는 쿠키로 tempToken을 클라이언트에게 전달함. 그렇다면, 회원가입 페이지에서 /api/v1/member/signup 요청할 때 이 tempToken이 자동으로 쿠키에 붙어서 서버로 전송될 것이다.

2️⃣ 회원가입 페이지에서 회원가입 정보 입력 후 회원가입 시도

→ 사용자가 회원가입 정보를 모두 입력하고 저장을 누르면 회원가입 요청을 서버에 보내게 됨. 이때 로그인 시도 단계에서 전달받은 tempToken을 쿠키에 담아서 서버로 전달함!!

여기에서, 회원가입을 성공하면 다시 kauth.kakao.com/oauth 로 요청을 보내어야 함.

이때는 회원가입 성공 응답을 트리거로 요청이 발생해야 함!!!! (랜딩 페이지로 다시 이동 X)

requestKakaoAuthorize.ts 유틸함수 사용

3️⃣ 회원가입 성공 후에는… (이미 회원인 상태에서 로그인 버튼을 누른 것과 동일한 상황)