JWT Token / Access token / Refresh token

KINA KIM·2024년 10월 17일
0

JWT Token

  • 유저의 신원을 결정하는 정보를 담은 데이터로 서버와 클라이언트가 안전하게 통신할 수 있는 매개체
  • 탈취 당했을 때를 대비하여 유효기간을 설정해야 함
  • 다만, 유효기간을 짧게 두면 사용자가 로그인을 자주 해야 하고 길게 두면 보안상 탈취 위험에 취약하게 됨
  • 그러기 때문에 유효기간이 다른 JWT 토큰 두 개 (Access Token과 Refresh Token)을 둠
  • Refresh Token 또한 탈취당할 위험이 있기 때문에 Access Token을 재요청 할 때 마다 Refresh 토큰도 새로 발급받는 Refrsh Token Rotation 방법을 사용할 수 있음

Access Token

  • API와 통신할 때 사용하는 토큰
  • 짧은 유효기간

Refresh Token

  • Access Token이 만료됐을 때 사용하는 토큰
  • 긴 유효기간

기본 동작 방식

  1. 로그인 인증에 성공 시 클라이언트는 Refresh Token과 Access Token을 받는다
  2. 서버는 db에 Refresh Token을 저장하고 클라이언트는 로컬에 Refresh Token과 Access Token을 저장한다
  3. Access Token을 사용하여 API와 통신한다
  4. Access Token이 만료되면 사용자는 권한이 없는 사용자가 된다.
  5. Refresh Token을 넣어 API를 재요청한다.
  6. 서버가 Refresh Token으로 사용자의 권한을 확인하면 새로운 Access Token을 발급한다.
  7. Refresh 토큰 또한 만료되었다면 사용자는 재로그인이 필요하다.

0개의 댓글