- JWT는 헤더, 페이로드, 시그니처로 구성되며, 각 부분은 점(.)으로 구분됩니다. 🧩
- 헤더는 JWT의 메타데이터를 담고 있으며, JSON 형식으로 표현됩니다. ⚙️
- 페이로드는 바이트 형태로 표현될 수 있는 데이터를 담으며, JSON 형태일 경우 클레임이라고 합니다. 📦
- 시그니처는 헤더와 페이로드가 변조되지 않았는지 검증하는 데 사용됩니다. 🔑
- JJWT 라이브러리는 자바 진영에서 JWT를 생성하고 검증하는 데 널리 사용됩니다. 🛠️
- JWT 생성 시 시크릿 키를 사용하여 암호화하고, 검증 시 동일한 키로 복호화합니다. 🗝️
- 표준 클레임에는 서브젝트(sub), 만료 시간(exp), 발급 시간(iat) 등이 있습니다. ⏱️
- 롤(role) 정보는 표준 클레임이 아니므로, 별도로 클레임에 추가해야 합니다. 🎭
compact()
메서드는 헤더와 페이로드를 합치고 시그니처를 생성하여 최종 JWT를 만듭니다. 🔗