animeta
animeta copied to clipboard
JWT
AS-IS
처음 인증할 때
브라우저 -- POST /api/v2/auth --> 프론트엔드 서버 (proxy) -- POST /v2/auth --> 백엔드 서버
<-- Set-Cookie (sessionid) -- <-- Set-Cookie (sessionid) --
인증된 뒤
브라우저 -- 쿠키 (sessionid) --> 프론트엔드 서버 (proxy) --> 헤더 (x-animeta-session-key) --> 백엔드 서버
TO-BE
처음 인증할 때
브라우저 -- POST /api/v3/Authenticate --> 프론트엔드 서버 -- POST /v3/Authenticate --> 인증 백엔드
<-- JSON payload (incl. JWT) -- <-- JSON payload (incl. JWT) --
-- POST /api/fe/sessions (JWT) -->
<-- Set-Cookie (sessiontoken) --
인증된 뒤
브라우저 -- 쿠키 (sessiontoken) --> 프론트엔드 서버 --> 헤더 (authorization: bearer) --> 백엔드 서버
마이그레이션
- 기존 쿠키(
sessionid)를 가진 사람들을 JWT 쿠키(sessiontoken)로 바꿔줘야 함. - 세션 유지기간이 2주이므로 기존 쿠키 처리는 최소 2주간 유지해야 함.
- 프론트엔드 서버에서 새 쿠키가 없고 기존 쿠키가 있으면, 백엔드의 토큰 마이그레이션 API를 때려서 JWT로 바꾸고, 새 쿠키 설정.