Skip to content

Latest commit

 

History

History
34 lines (24 loc) · 1.28 KB

jwt.md

File metadata and controls

34 lines (24 loc) · 1.28 KB

JWT (Json Web Token)

JWT 란?

  • 웹표준 (RFC 7519) 으로서 두 개체에서 JSON 객체를 사용하여 가볍고 자가수용적인 (self-contained) 방식으로 정보를 안전성 있게 전달

  • 수많은 프로그래밍 언어에서 지원함

  • 자가 수용적 (self-contained)

Use Case

  • 회원 인증
  • 정보 교류

구성

  • [header].[payload].[signature]
  • '.'을 구분자로 3가지 문자열로 구성됨
  • 라이브러리 사용시 토큰을 자동으로 인코딩/해싱 작업 해줌

header

  • 타입, 해싱알고리즘 두가지의 정보를 가짐
  • typ : 토큰의 타입 지정. 타입이 JWT 라는 것
  • alg : 해싱 알고리즘 지정. 보통 HMAC SHA256 이나 RSA 가 사용됨. 알고리즘은 토큰을 검증 할 때 사용되는 signature 부분에서 사용됨

payload

  • 토큰에 담을 정보가 들어있음. 정보의 한 조각을 claim 이라고 부르고 name/value 한쌍으로 이뤄져있음. 토큰에는 여러개의 클레임들을 넣을 수 있다.
  • 클레임의 종류 세가지 : registered, public, private

signature

  • 서명은 헤더의 인코딩값과, 정보의 인코딩값을 합친 후 주어진 비밀키로 해쉬를 해 생성

resource