animeta icon indicating copy to clipboard operation
animeta copied to clipboard

JWT

Open dittos opened this issue 7 years ago • 0 comments

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로 바꾸고, 새 쿠키 설정.

dittos avatar Jan 06 '19 15:01 dittos