1. Header
JWT의 형식과 서명 검증 방식에 대한 메타데이터
{
"typ": "JWT", // 토큰 형식 명시 (대부분 생략 가능)
"alg": "HS256" // 서명에 사용된 알고리즘
}
- Header는 JWT를 어떤 방식으로 검증할지에 대한 메타데이터이다.
- typ은 거의 생략 가능하며, 실질적으로 중요한 정보는 alg이다.
- alg는 Signature를 생성하고 검증하는 데 사용되는 알고리즘을 의미한다.
2. Payload
JWT가 전달하고자 하는 정보(클레임)를 담는 본문 영역
{
"sub": "20", // 표준(Registered) Claim
"role": "USER", // 커스텀(Private) Claim
"exp": 1736073600 // 표준(Registered) Claim
}
- Payload는 클레임들의 집합이다.
- Payload는 암호화되지 않으며, 누구나 Base64 디코딩으로 내용을 확인할 수 있다.
- 따라서 비밀번호, 개인정보 등 민감한 정보는 포함해서는 안 된다.
💡 Claim(클레임)이란?
- Payload 안에 들어 있는 개별 데이터 항목
- JWT가 전달하고자 하는 실제 정보 단위
- 사용자 식별자, 권한, 만료 시간 등의 의미를 가진다
3. Signature