JWT 디코더이란?

JSON Web Token을 붙여넣으면 디코딩된 헤더, 페이로드, 서명을 바로 볼 수 있습니다. 토큰 클레임 확인, 만료 시간 검증, 인증 문제 디버깅을 몇 초 만에 처리하세요.

디코더는 토큰을 점 기준으로 나눠 헤더와 페이로드를 Base64URL로 디코딩한 뒤 JSON으로 파싱합니다. 서명 알고리즘(HS256, RS256, EdDSA 등), 예약 클레임(iss, sub, aud, exp, iat, nbf, jti), 그리고 서비스가 추가한 사용자 정의 클레임이 한눈에 보입니다. 시각 관련 클레임은 Unix epoch에서 로컬 타임존으로 변환되어 만료 여부를 즉시 알아챌 수 있습니다.

사용 방법

  1. 입력 필드에 JWT 토큰을 붙여넣으세요 — Base64로 인코딩된 세 부분이 자동으로 인식됩니다.
  2. 디코딩된 헤더(알고리즘, 타입)와 페이로드(클레임, 만료 시간, 발급자)를 나란히 확인하세요.
  3. 디코딩된 개별 섹션이나 전체 파싱 결과를 복사하세요.

사용 시기

  • 401 응답을 디버깅하면서 bearer 토큰의 exp가 이미 지났는지 확인할 때.
  • 프로덕션 배포 전에 스테이징에서 발급된 토큰의 aud와 iss가 맞는지 검증할 때.
  • 외부 SSO 제공자가 액세스 토큰에 담아 둔 user_id나 스코프를 읽어 볼 때.

결과

API에서 401 에러를 디버깅하고 있습니다. 요청 헤더의 Bearer 토큰을 붙여넣어 'exp' 클레임이 이미 만료되었는지, 'aud' 클레임이 예상 대상과 일치하는지 확인해 보세요.

자주 묻는 질문

이 도구는 서명을 검증하나요?
HMAC 토큰(HS256, HS384, HS512)은 시크릿을 붙여 넣으면 도구가 당신의 기기에서 직접 서명을 확인합니다. RS, ES 토큰(RS256/384/512, ES256/384/512)은 발급자의 PEM 공개키를 붙여 넣으면 똑같이 검증됩니다. 어느 쪽이든 시크릿이나 키는 기기를 벗어나지 않습니다.
실제 운영 토큰을 붙여 넣어도 괜찮나요?
디코딩은 사용자의 기기에서만 일어나며 토큰은 어떤 서버로도 전송되지 않습니다. 다만 bearer 토큰은 들고 있는 사람에게 사용자 권한을 그대로 부여하므로, 진짜 위험은 도구가 아니라 화면을 들여다보는 주변 시선입니다.
alg 값이 'none'이면 어떤 의미인가요?
일부 오래된 라이브러리는 alg=none으로 서명되지 않은 토큰을 받아 들였는데, 이는 잘 알려진 공격 벡터입니다. 운영 API는 그런 토큰을 즉시 거부해야 합니다. 인증용 토큰에서 'none'이 보인다면 발급자의 설정을 바로잡아야 합니다.
왜 exp와 iat가 날짜가 아니라 숫자로 보이나요?
JWT는 시간 클레임을 1970-01-01 UTC 기준 초 단위로 저장합니다. 디코더는 각 클레임 옆에 사람 친화적인 로컬 날짜를 함께 표시해, 계산 없이도 만료 여부를 판단할 수 있게 해 줍니다.
암호화된 토큰(JWE)도 디코딩되나요?
JWE는 점으로 구분된 다섯 조각으로 구성되고 단순 서명이 아니라 본문 자체가 암호화되어 있습니다. 이 도구는 JWS(세 조각: header.payload.signature)를 다룹니다. JWE는 복호화 키가 필요하며, 설계상 그 키는 수신 서버에만 존재해야 합니다.

관련 도구