학습기록남기기
JWT(Json Web Token) 본문
JWT.IO
JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.
jwt.io
JWT = Json Web Token
JSON 웹 토큰(JWT)은 당사자 간의 정보를 JSON 객체로 안전하게 전송하기 위한 작고 독립적인 방법을 정의하는 개방형 표준(RFC 7519)입니다.
이 정보는 디지털 서명되어 있으므로 확인 및 신뢰할 수 있습니다.
JWT는 비밀(HMAC 알고리즘 - Security Key 소지 ) 또는 RSA 또는 ECDSA를 사용하여 공개/개인 키 쌍을 사용하여 서명할 수 있습니다.
JWT Strucuture
- Header
- Payload
- Signature
--> header.payload.signature ex) xxxxx.yyyyy.zzzzz
Header -토큰의 유형인 JWT와 HMAC SHA256 또는 RSA와 같은 서명 알고리즘의 두 부분으로 구성
{
"alg" :"HS256",
"typ": "JWT"
}
--> Base64Url encoded
Payload - 클레임은 엔티티(일반적으로 사용자) 및 추가 데이터에 대한 진술입니다. 청구에는 등록 청구, 공개 청구, 비공개 청구의 세 가지 유형
- Registered claims
- Public claims
- Private claims
{
"sub":"1234567",
"name":"John",
"admin":true
}
Signature - 인코딩된 헤더, 인코딩된 페이로드, 암호, 헤더에 지정된 알고리즘을 가져와서 서명
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)