JWT 디코더
JSON Web Token(JWT)을 즉시 디코딩하고 검사하세요. 헤더, 페이로드, 만료 상태를 확인할 수 있습니다.
JWT 디코더란?
JWT 디코더는 JSON Web Token(JWT)을 디코딩하여 헤더와 페이로드를 사람이 읽기 쉬운 JSON 형식으로 표시하는 무료 온라인 도구입니다. exp 클레임을 읽어 토큰의 만료 상태를 자동으로 감지하고 표시하여 개발자가 토큰이 여전히 유효한지 빠르게 판단할 수 있도록 합니다. 모든 디코딩은 브라우저에서 완전히 이루어지므로 민감한 토큰이 네트워크를 통해 전송되지 않습니다.
JWT 디코더 사용법
- 입력 필드에 완전한 JWT 토큰(점으로 구분된 세 개의 Base64 인코딩 부분 모두)을 붙여넣으세요.
- JWT 디코딩 버튼을 클릭하여 토큰 구조를 파싱하세요.
- 디코딩된 헤더를 검토하여 서명 알고리즘과 토큰 유형을 확인하세요.
- 페이로드를 검사하여 주제, 발급자, 커스텀 데이터를 포함한 모든 클레임을 확인하세요.
- 만료 상태 표시기를 확인하여 토큰이 현재 유효한지 만료되었는지 확인하세요.
팁 & 모범 사례
프로덕션 토큰 공유 금지
이 도구가 토큰을 로컬에서 처리하더라도, 스크린샷이나 로그에 프로덕션 환경의 JWT 토큰을 공유하지 마세요. 토큰은 페이로드에 민감한 사용자 정보를 포함할 수 있고, 만료되지 않은 토큰은 무단 접근에 사용될 수 있습니다.
세 부분 이해하기
JWT는 점으로 구분된 세 개의 Base64URL 인코딩 부분으로 구성됩니다: 헤더(알고리즘과 유형), 페이로드(클레임과 데이터), 서명(검증 해시). 이 도구는 암호화되지 않고 인코딩만 된 처음 두 부분을 디코딩합니다.
만료 정기 확인
exp 클레임은 토큰의 만료 시간을 Unix 타임스탬프로 포함합니다. 인증 문제를 디버깅할 때 토큰이 만료되었는지 항상 먼저 확인하세요. 이는 API 호출에서 401 Unauthorized 오류의 가장 흔한 원인입니다.
커스텀 클레임 살펴보기
iss, sub, exp 같은 표준 클레임 외에도 많은 애플리케이션이 사용자 역할, 권한 또는 테넌트 ID 같은 커스텀 클레임을 추가합니다. 이러한 커스텀 클레임을 이해하면 권한 부여 및 접근 제어 문제를 더 효과적으로 디버깅할 수 있습니다.
일반적인 사용 사례
API 디버깅
API 요청이 인증 오류를 반환할 때 Authorization 헤더의 JWT를 디코딩하여 토큰이 만료되었는지, 잘못된 대상에 발급되었는지, API가 기대하는 필수 클레임이 누락되었는지 확인하세요.
OAuth 흐름 문제 해결
OAuth 2.0 및 OpenID Connect 구현 중 ID 토큰과 액세스 토큰을 검사하여 ID 공급자가 토큰 페이로드에 올바른 스코프, 클레임, 대상 값을 반환하는지 확인하세요.
보안 감사
JWT 토큰을 검토하여 페이로드에 과도하거나 민감한 정보가 포함되어 있지 않은지 확인하세요. JWT 페이로드는 Base64로 인코딩만 되어 있으므로(암호화되지 않음) 토큰을 가로채는 사람은 누구나 페이로드의 데이터를 읽을 수 있습니다.
FAQ
JWT를 여기에 붙여넣어도 안전한가요?
네. 모든 디코딩은 브라우저에서 로컬로 처리됩니다. 서버로 데이터가 전송되지 않습니다.
JWT 서명을 검증할 수 있나요?
이 도구는 JWT 내용을 디코딩하고 표시합니다. 서명 검증은 비밀 키가 필요하며, 검사에는 필요하지 않습니다.
JWS와 JWE의 차이점은?
JWS(JSON Web Signature) 토큰은 서명되어 있지만 읽을 수 있는 페이로드를 가지며, 대부분의 사람들이 JWT로 의미하는 것입니다. JWE(JSON Web Encryption) 토큰은 복호화 키 없이는 읽을 수 없는 암호화된 페이로드를 가집니다. 이 도구는 실제로 가장 일반적인 유형인 JWS 토큰과 함께 작동합니다.
비밀 키 없이 페이로드를 읽을 수 있는 이유는?
JWT 페이로드는 암호화되지 않고 Base64URL로 인코딩됩니다. 서명은 토큰이 변조되지 않았는지만 보장하며, 내용을 숨기지 않습니다. 이는 의도된 설계이므로 JWE 암호화를 사용하지 않는 한 JWT 페이로드에 진정으로 비밀인 정보를 저장하지 마세요.
일반적인 JWT 클레임은?
표준 클레임에는 iss(발급자), sub(주체/사용자 ID), aud(대상), exp(만료 시간), nbf(유효 시작), iat(발급 시각), jti(JWT ID)가 포함됩니다. 애플리케이션은 역할, 권한 및 기타 애플리케이션별 데이터를 위한 커스텀 클레임을 자주 추가합니다.