본문 바로가기

플밍 is 뭔들/그 외..

[JWT] JSON Web Token - AssessToken과 Refresh 토큰

JWT는 기본적으로 두 가지 토큰을 사용합니다.
 
※ Access Token
  • API 요청을 허가하는데 사용합니다.
  • 리소스에 직접 접근할 수 있도록 해주는 정보만을 가지고 잇습니다. 즉 클라이언트는 Access Token이 있어야 서버 자원에 접근할 수있습니다.
  • 짧은 수명을 가지며 만료기간을 갖습니다.
 
※ Refresh Token
  • 새로운 Access Token을 발급받기 위한 정보를 갖습니다. 즉 클라이언트가 Access Token이 없거나 만료되었다면 Refresh Token을 통해 Auth Server에 요청해서 발급받을 수 있습니다.
  • 만료기한이 있지만 깁니다.
  • Refresh Token은 중요하기 때문에 외부에 노출되지 않도록 엄격하게 관리해야 하므로 주로 데이터베이스에 저장합니다.
 
※ JWT 토큰 재발급 로직
최초 발급시 Access Token과 Refresh Token 을 발급합니다. 그 후 Access Token으로 API를 사용하다가 만료시간이 지나면 만료시간을 길게 준 Refresh Token을 이용해서 Access Token을 재발급 합니다.
클라이언트가 토큰의 만료시간을 알 수 있기 때문에 클라이언트에서 판단하여 만료시간이 넘었으면 토큰 재발급을 요청하거나 TokenExpiredError가 발생했을 때 재발급해주는 것입니다.