JWT 디코더 - JSON Web Token 디코딩 및 클레임 분석기
JSON Web Token(JWT, RFC 7519)은 현대 웹 애플리케이션의 무상태(Stateless) 사용자 인증과 API 인가 처리에 널리 사용되는 표준 규격입니다. 마침표(.)로 구분된 3개 영역(Header, Payload, Signature)으로 구성되며, 개발 중 401 Unauthorized 에러의 원인을 찾거나 토큰의 만료 일시(exp), 사용자 역할(roles), 고유 ID(sub)를 확인할 때 필수적으로 사용됩니다.
이런 상황에서 사용하세요
- 토큰 만료 시간(exp) 확인: Unix 타임스탬프로 기록된 exp 값을 읽기 쉬운 현지 일시로 변환하여 갑작스러운 로그아웃 원인을 파악합니다.
- 권한(Role/Scope) 검증: 관리자 권한이나 API 스코프가 페이로드 내에 정상적으로 담겨 발급되었는지 점검합니다.
- 401 Unauthorized 디버깅: 발급자(iss)나 수신자(aud) 설정이 일치하지 않아 발생하는 백엔드 인증 실패 원인을 분석합니다.
- 서명 알고리즘 및 Header 확인: 토큰이 RS256인지 HS256인지, kid(Key ID)가 올바르게 지정되었는지 헤더 정보를 확인합니다.
사용 방법 및 실무 가이드
- 토큰 붙여넣기: 브라우저 쿠키나 Authorization 헤더에서 복사한 JWT 문자열(ey...)을 입력창에 넣습니다.
- 자동 디코딩: 점(.)으로 구분된 3개 파트를 자동 분리하고 Base64URL 알고리즘으로 디코딩합니다.
- 클레임 및 만료일 확인: Header의 알고리즘과 Payload의 사용자 정보, 만료 일시(만료 여부 표시)를 확인합니다.
- 결과 복사 및 활용: 파싱된 JSON 데이터를 복사하여 테스트 코드나 API 문서에 활용합니다.
입출력 실무 예시
Input:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE5MTYyMzkwMjJ9.4z...
Output:
{
"sub": "1234567890",
"name": "John Doe",
"role": "admin",
"iat": 1516239022,
"exp": 1916239022 (Valid)
}
자주 묻는 질문 (FAQ)
Q. JWT를 웹에서 디코딩하면 보안상 위험하지 않나요?
A. 본 도구는 100% 브라우저 메모리 안에서만 동작하며 외부 서버로 토큰을 전송하지 않습니다. 또한 JWT의 Payload는 암호화가 아닌 단순 Base64 인코딩이므로 원래 누구나 열어볼 수 있는 공개 클레임입니다. 따라서 비밀번호나 개인정보는 애초에 JWT에 넣지 않는 것이 보안 원칙입니다.
Q. 토큰 서명(Signature) 유효성도 검증되나요?
A. 서명 검증은 토큰을 발급한 서버의 비밀키(Secret Key)나 공개키 인증서가 필요합니다. 비밀키 유출을 방지하기 위해 이 도구는 안전한 클레임 열람 및 만료시간 분석에 집중합니다.
Q. 토큰이 왜 "만료됨(Expired)"으로 표시되나요?
A. JWT의 exp(만료시간) 클레임은 초 단위의 유닉스 시간입니다. 현재 시간보다 과거의 시간이 적혀있다면 이미 수명이 다한 토큰이며, API 서버에서 인증 거부(401) 처리가 발생합니다.
기술 및 보안 유의사항
- 입력한 인증 토큰은 오직 사용자의 브라우저에서만 해석되며, 어떤 원격 서버나 로깅 시스템으로도 전송되지 않습니다.
- RFC 7519 표준에 따른 일반 클레임(sub, iss, aud, exp, iat, nbf)을 정확하게 파싱하고 시간을 현지화합니다.
함께 사용하면 좋은 관련 도구