[면접 준비] JWT, Refresh, Access Token에 대해서 설명해주세요. (24/04/02)

2024. 4. 2. 09:14공부/면접 준비

JWT(Json Web Token)

선택적 서명과 선택적 암호화를 사용하여 데이터를 만들기 위한 표준으로, 필요한 모든 정보를 json객체에 담아 전달하는 웹 표준 입니다. 필요한 모든 정보를 담아 전달하기 때문에 JWT 한가지로 인증을 마칠 수 있으며, 웹 표준이기 때문에 대부분의 언어가 지원합니다.

헤더와 페이로드로 구성되어 있으며, 헤더에는 JWT에서 사용할 타입과 해시 알고리즘이, 페이로드에는 서버에서 보내는 인코딩된 정보가 담겨 있습니다.

 

Access Token

  1. 클라이언트가 갖고 있는 유저 정보가 담긴 토큰
    • 사용자가 리소스에 접근할 수 있도록 권한을 부여
  2. 인증용 토큰
    • 클라이언트가 서버에 자원에 대한 요청을 할 때 요청과 함께 전송됨.
  3. 짧은 유효기간
    • 만료시 리프레시 토큰을 사용.

 

Refresh Token

  1. 액세스 토큰 재발급
    • 액세스 토큰이 만료된 후, 재발급을 위해 사용됨
  2. 긴 유효 기간
    • 액세스 토큰보다 긴 유효기간을 가지며, 보안적으로 더욱 강력한 보호를 받는다.
    • 액세스 토큰이 탈취되는건 문제가 없지만, 리프레시 토큰이 탈취되는건 심각한 문제를 일으킬 수 있기 때문.

 

답변

JWT는 사용자 인증과 권한부여의 웹 표준으로, 필요한 정보를 암호화한 뒤 페이로드에 담아 서버에 전달됩니다.  

액세스 토큰은 사용자 인증에 사용되는 토큰으로, 유저 정보가 담겨있으며 유효기간이 비교적 짧습니다.

리프레시 토큰은 액세스 토큰 재발급에 사용되며, 상대적으로 긴 유효기간과 보안적으로 더욱 강력하게 보호받습니다.