개발공부

JWT 토큰

koka 2025. 3. 9. 21:44

 

JWT(Json Web Token)

Json 객체로 당사자 간에 정보를 안전하게 전송하기 위한 컴팩트하고 독립적인 방식을 정의하는 개방형 표준이다.

 

JWT의 구조

  • 헤더 (Header)

 

alg 에는 서명 알고리즘 (HMAC, SHA256, RSA)등이 들어간다.

typ 에는 JWT가 타입이다.

 

  • 내용 (Payload)

Payload 는 엔터티(일반적으로 사용자)와 추가 데이터에 대한 내용이 들어가있다. 그 내용은 여러 개의 Claims으로 이루어져 있다. Claims은 registered, public, private 등의 3가지 유형이 있다.

  • registered claim : 필수는 아니지만 권장되는 사전 정의된 클레임이다. 
    • iss, exp, sub, aud 등의 항목을 제공한다.
  • public claim : 
    • 자유롭게 정의할 수 있는 구간이지만 충돌을 방지하기 위한 이름을 가진다.
  • private claim :
    • 등록되있지도, 공개되지도 않은 claim

 

  • 서명 (Signature)
    • 시그니처에는 secret Key를 포함하여 암호화 되어있다. Header의 인코딩값과 Payload의 인코딩값을 합친 후 비밀키로 해쉬한다.