CS Study : JWT, Refresh, Access Token에 대해서 설명해주세요.

song yuheon·2023년 11월 4일
0

CS Study

목록 보기
45/50
post-custom-banner

JWT, Access Token, 그리고 Refresh Token은 웹과 모바일 애플리케이션에서 사용자 인증과 권한 부여를 위해 널리 사용되는 토큰 기반 인증 방식의 핵심 요소입니다.


JWT (JSON Web Token)


  • JWT란?
    JSON Web Token (JWT)는 사용자의 신원 정보를 JSON 객체로 안전하게 전송하기 위한 개방형 표준 입니다.
    이 정보는 디지털 서명되어 있어 검증하고 신뢰할 수 있습니다.

  • 구조
    JWT는 세 부분으로 나뉩니다
    Header(헤더), Payload(페이로드), 그리고 Signature(서명).
    헤더는 토큰의 타입과 해싱 알고리즘 정보를 담고, 페이로드는 사용자 신원 정보 및 클레임(claims)을 담고, 서명은 토큰이 조작되지 않았음을 보증합니다.

  • 사용
    JWT는 일반적으로 사용자가 로그인한 후 서버에 의해 생성되어 사용자에게 반환됩니다.
    사용자는 이후 모든 요청에 JWT를 포함하여 서버에 전송하고, 서버는 해당 토큰을 검증하여 사용자를 인증합니다.


Access Token


  • Access Token이란?
    Access Token은 인증된 사용자가 서버의 특정 자원에 접근할 수 있는 권한을 부여받는데 사용되는 자격 증명입니다.
    주로 JWT 형태로 발급됩니다.

  • 유효 기간
    Access Token은 짧은 유효 기간을 가지고 있어, 토큰이 노출되더라도 보안 위험을 최소화합니다.

  • 사용
    사용자가 시스템에 로그인하면 서버는 Access Token을 발급하고, 사용자는 이 토큰을 사용하여 API 요청과 같은 보안이 필요한 작업을 수행할 수 있습니다.


Refresh Token


  • Refresh Token이란?
    Refresh Token은 Access Token을 새로 발급받기 위한 토큰으로, Access Token보다 훨씬 긴 유효 기간을 가집니다.

  • 목적
    Access Token이 만료되었을 때 사용자가 다시 로그인하지 않고도 새로운 Access Token을 안전하게 받을 수 있도록 하는 것입니다.

  • 사용
    사용자는 Refresh Token을 이용하여 새 Access Token을 요청하고, 서버는 Refresh Token을 검증한 후 새 Access Token을 발급합니다.


JWT 동작 과정


  1. 사용자가 로그인합니다.
  2. 서버는 사용자의 인증 정보를 검증한 후 JWT 형태의 Access Token과 함께 Refresh Token을 발급합니다.
  3. 사용자는 Access Token을 사용하여 필요한 API 요청을 수행합니다.
  4. Access Token이 만료되면, 사용자는 서버에 Refresh Token을 전송하여 새로운 Access Token을 요청합니다.
  5. 서버는 Refresh Token을 검증하고, 유효하다면 새 Access Token을 발급합니다.

profile
backend_Devloper
post-custom-banner

0개의 댓글