JWT의 구조: 헤더, 페이로드, 서명
JSON Web Token(JWT)는 세 개의 점(.)으로 구분된 문자열로 구성됩니다. 형식은 항상 헤더.페이로드.서명입니다. 이 세 부분은 모두 Base64URL 인코딩되어 있어 사람이 직접 읽을 수 없지만, 디코딩하면 원래의 JSON 구조를 확인할 수 있습니다. 헤더에는 일반적으로 사용된 알고리즘(예: HS256, RS256)과 토큰 유형(typ)이 포함됩니다. 페이로드는 실제 데이터가 담긴 부분으로, 사용자 식별 정보나 권한, 만료 시간(exp) 등이 들어갑니다. 마지막 서명은 토큰의 무결성을 보장하기 위한 것으로, 비밀 키 또는 공개 키를 사용해 생성됩니다. JWT 디코더는 이 세 부분 중 헤더와 페이로드만 로컬에서 디코딩하여 보여주며, 서명은 검증하지 않습니다. 이는 브라우저 내에서만 처리되므로 서버로 전송되지 않아 안전합니다. 예를 들어, eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...와 같은 토큰을 붙여넣으면, 헤더에 {"alg":"HS256","typ":"JWT"}와 같은 내용이 표시됩니다. Base64URL 디코딩 과정은 Base64 디코더와 유사하지만, JWT는 패딩(=)을 제거하고 URL 안전 문자만 사용한다는 점에서 다릅니다.