(2023.2.28) Today_I_Learned_day-133

imRound·2023년 2월 28일
0
post-thumbnail

JWT(Json Web Token)

  • 서로 다른 기기에 데이터를 전달할 때 사용하는 방법 중 하나
  • Base64포맷이 기본적인 구성
    • Header
      • JWT의 Header는 JWT의 metadata들을 나타낸다.
        여기에는 Sign에 사용된 Algorithms, format, 그리고 ContentType 등의 정보가 들어갈 수 있다.
    • Body(Claims, Payload)
      • Payload는 JWT의 Body에 해당되는 부분이다.
        Payload의 단위는 Claims로써 사실상 실제 데이터는 Claims라는 단위로 저장됩니다
        이러한 Claims에는 JWT 생성자가 원하는 정보들을 자유롭게 담을 수 있습니다.
    • Signature
      • Base64로 인코딩한 Header와 Claims를 먼저 만든 후 이를 Key를 통해서 Sign하는 방식
      • Client에서 Header 또는 Claims의 값을 변경한다면
        이는 signature의 불일치로 인해서 서버에서 받아들여지지 않는다.

JWT의 Resgistered Fields

  • iss (Issuer) : JWT를 발급한 주체
  • sub (Subject) : JWT의 발급의 목적(주제)
  • aud (Audience) : JWT 발급받은 수신자
    • 해당 값으로 식별이 가능해야합니다.
  • exp (Expiration Time) : JWT 만료시간
  • nbf (Not Before) : JWT 활성화 시간
  • iat (Issued At) : JWT 발급 시간
  • jti (JWT ID) : JWT 발급의 Unique ID
profile
Django 개발자

0개의 댓글