JWT(JSON Web Token)는 점(.)으로 구분된 header, payload, signature 세 부분으로 이루어진 인증 토큰입니다. 앞의 두 부분은 Base64URL로 인코딩된 JSON일 뿐이라, 누구나 디코딩해 내용을 볼 수 있습니다. 이 도구는 토큰을 붙여 넣으면 header와 payload를 보기 좋게 펼쳐 주고, exp(만료)·iat(발급)·nbf(유효 시작) 같은 시각 클레임을 한국 시간(KST)으로 변환해 토큰이 현재 유효한지까지 표시합니다.
API를 디버깅하다 보면 '왜 401이 뜨지?'를 추적할 때 토큰의 만료 시각이나 발급 주체(iss), 대상(aud), 사용자 식별자(sub)를 확인해야 하는 경우가 많습니다. 이 도구는 그 정보를 브라우저 안에서만 디코딩하므로, 실제 인증 토큰을 외부 서버로 보내지 않고 안전하게 들여다볼 수 있습니다.
사용 방법
- 1
토큰 붙여넣기
eyJ로 시작하는 JWT 문자열을 입력란에 붙여 넣습니다.
- 2
디코딩 실행
'디코딩' 버튼을 누르면 header와 payload의 JSON 내용이 펼쳐집니다.
- 3
클레임 확인
exp, iat, nbf 같은 시각 값이 KST 날짜로 변환되어 표시되고, 만료 여부 배지로 유효성을 알려 줍니다.
- 4
복사
header·payload JSON을 복사 버튼으로 가져가 다른 도구에서 추가 분석할 수 있습니다.
활용 팁
- sub는 사용자 식별자, iss는 발급 주체, aud는 토큰 대상을 의미하는 표준 클레임입니다.
- 만료(exp)가 지난 토큰은 서버에서 거부됩니다. 401 오류가 날 때 가장 먼저 확인할 값입니다.
- header의 alg 필드로 서명 알고리즘(HS256, RS256 등)을 확인할 수 있습니다.
- 이 도구는 서명을 검증하지 않으므로, 토큰이 위조되지 않았는지 판단하려면 서버에서 비밀키로 검증해야 합니다.
자주 묻는 질문
서명도 검증해 주나요?
아니요. 이 도구는 header와 payload를 디코딩해 내용을 보여 줄 뿐, 서명을 검증하지 않습니다. 토큰의 진위 판단은 서버에서 비밀키/공개키로 수행해야 합니다.
토큰이 서버로 전송되나요?
아니요. 디코딩은 브라우저에서만 이루어지며 토큰이 외부로 전송되지 않습니다. 실제 인증 토큰도 안전하게 확인할 수 있습니다.
만료 여부는 어떻게 판단하나요?
payload의 exp(초 단위 타임스탬프)와 현재 시각을 비교해 만료 여부를 표시합니다. 기기 시계가 틀어져 있으면 판단도 달라질 수 있습니다.
왜 디코딩이 실패하나요?
JWT가 아닌 문자열이거나, 복사 과정에서 일부가 잘렸거나, 공백·줄바꿈이 섞인 경우 실패할 수 있습니다. 점(.)으로 구분된 세 부분이 온전한지 확인하세요.
payload를 수정해 새 토큰을 만들 수 있나요?
이 도구는 읽기 전용 디코더입니다. payload를 바꿔도 유효한 서명이 없으면 서버에서 거부되므로 토큰 재발급은 서버에서 해야 합니다.