Header, Payload, Signature 세 개의 Base64-URL 문자열로 구성되며, 점(.)으로 구분됩니다.
Header : 보통 JWT 유형, 사용되는 signature 알고리즘(HMAC SHA256 또는 RSA 등) 두 가지 정보를 담고 있습니다.
{
"alg": "HS256",
"typ": "JWT"
}
Payload : 서버와 클라이언트가 주고받는, 실제로 시스템에서 사용될 정보에 대한 내용들이 담겨있습니다. 페이로드는 클레임(Claims)을 포함하고 있는데, 클레임은 특정 엔터티(일반적으로 사용자) 및 추가 데이터에 대한 정보를 담고 있습니다.
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
Signature : 토큰의 유효성 검증을 위한 문자열. 이 문자열을 통해 서버에서는 이 토큰이 유효한 토큰인지를 검증합니다.
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)예시
