jwt를 사용했습니다.

만료기간이 5분인 access token을 사용했으며 토큰 재발급은 redis를 통해 관리됩니다.

Access token


Access token은 cookie에 저장되며 다음과같은 쿠키 옵션을 사용했습니다.

  1. http only
  2. secure
  3. same site strict

또한 세션관리를 원활히 하기 위해서 각 access token이 발급된 시점마다 유니크한 jti를 생성합니다.

토큰 재발급


Refresh key

refresh key란 고정되어있는 key값 대신에 랜덤한 문자열을 가진 key값과 이 key를 단방향 암호화한 값을 가진 cookie입니다.

refersh key 발급 과정은 다음과 같습니다.

  1. jti값과 redis에 저장된 세션값이 유효한지 확인
  2. 새로운 세션 key발급을 위한 uuid 생성
  3. 발급된 세션 key를 key값으로 서버에서 세션 solt값을 합쳐서 단방향 암호화한 해결값을 value로 세션 cookie를 생성 (http only, secure, path, strict 적용)