JWT Decoder
JWT를 붙여넣으면 header, payload, claims를 디코딩해요. 모든 작업이 브라우저에서 진행되므로 토큰이 외부로 전송되지 않아요.
작동 방식: 아래에 JWT 토큰을 붙여넣으면 header와 payload를 바로 디코딩해요. 이 도구는 만료 상태를 강조 표시하고 모든 claims를 읽기 쉬운 형식으로 표시해요. 어떤 서버로도 데이터가 전송되지 않아요.
{
"alg": "HS256",
"typ": "JWT"
}{
"sub": "1234567890",
"name": "John Doe",
"email": "john@example.com",
"role": "admin",
"iat": 1779891019,
"exp": 1779981019,
"iss": "https://auth.example.com",
"aud": "https://api.example.com"
}| Claim | 값 |
|---|---|
| sub | 1234567890 |
| name | John Doe |
| john@example.com | |
| role | admin |
| iat | 1779891019 (2026-05-27T14:10:19.000Z) |
| exp | 1779981019 (2026-05-28T15:10:19.000Z) |
| iss | https://auth.example.com |
| aud | https://api.example.com |
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
JWT란 무엇인가요?
JSON Web Token (JWT)은 두 당사자 사이의 claims를 나타내는 간결하고 URL 안전한 방식이에요. 점(.)으로 구분된 세 부분으로 구성되어 있어요: header, payload, signature. Header는 사용된 알고리즘을 지정하고, payload는 claims(데이터)를 포함하며, signature는 토큰의 무결성을 검증해요. JWT는 웹 API의 인증 및 인가에 광범위하게 사용되고 있어요.
JWT 구조 설명
JWT의 각 부분은 Base64URL로 인코딩된 JSON이에요. Header는 일반적으로 알고리즘(HS256, RS256)과 토큰 타입을 포함해요. Payload는 sub(주체), iat(발급 시간), exp(만료 시간), 그리고 커스텀 데이터 같은 claims를 포함해요. Signature는 secret 또는 private key로 header와 payload에 서명해서 생성돼요.
일반적인 JWT Claims
표준 claims에는 iss(발급자), sub(주체), aud(대상), exp(만료 시간), nbf(이전에는 유효하지 않음), iat(발급 시간), jti(JWT ID)가 있어요. 커스텀 claims는 사용자 역할, 권한, 프로필 정보 같은 모든 JSON 데이터를 포함할 수 있어요. 토큰이 만료되었는지 확인하려면 항상 exp claim을 검증해야 해요.
보안 고려 사항
- JWT payload에 민감한 데이터를 저장하지 마세요 — encoding되었을 뿐 암호화되지 않았어요
- 항상 서버 측에서 signature를 검증하세요
- 짧은 만료 시간과 refresh token을 사용하세요
- 공개 API에는 HS256보다 RS256을 선호하세요
- 클라이언트 측 코드에 signing secret을 노출하지 마세요
- 토큰 도용을 방지하기 위해 HTTPS를 사용하세요