JWT(JSON Web Token)는 점(.)으로 구분된 header, payload, signature 세 부분으로 이루어진 인증 토큰입니다. 앞의 두 부분은 Base64URL로 인코딩된 JSON일 뿐이라, 누구나 디코딩해 내용을 볼 수 있습니다. 이 도구는 토큰을 붙여 넣으면 header와 payload를 보기 좋게 펼쳐 주고, exp(만료)·iat(발급)·nbf(유효 시작) 같은 시각 클레임을 한국 시간(KST)으로 변환해 토큰이 현재 유효한지까지 표시합니다.
JWT는 세션을 서버에 저장하지 않는 stateless 인증에서 주로 쓰입니다. 로그인하면 서버가 사용자 정보를 payload에 담아 서명한 토큰을 발급하고, 이후 요청마다 Authorization 헤더에 실어 보내면 서버는 서명만 검증해 신원을 확인합니다. payload에 담긴 sub(사용자 식별자), iss(발급 주체), aud(토큰 대상) 같은 클레임을 빠르게 들여다봐야 할 때 이 도구가 유용합니다.
API를 디버깅하다 보면 '왜 401이 뜨지?'를 추적할 때 토큰의 만료 시각부터 확인해야 하는 경우가 많습니다. 이 도구는 그 정보를 브라우저 안에서만 디코딩하므로, 실제 인증 토큰을 외부 서버로 보내지 않고 안전하게 들여다볼 수 있습니다. 단, header와 payload만 디코딩할 뿐 서명은 검증하지 않으므로 내용 확인 용도로만 사용해야 합니다.
사용 방법
- 1
토큰 붙여넣기
eyJ로 시작하는 JWT 문자열을 입력란에 붙여 넣습니다.
- 2
디코딩 실행
'디코딩' 버튼을 누르면 header와 payload의 JSON 내용이 펼쳐집니다.
- 3
클레임 확인
exp, iat, nbf 같은 시각 값이 KST 날짜로 변환되어 표시되고, 만료 여부 배지로 유효성을 알려 줍니다.
- 4
복사
header·payload JSON을 복사 버튼으로 가져가 다른 도구에서 추가 분석할 수 있습니다.
이럴 때 유용해요
401 인증 오류 원인 추적
API가 갑자기 401을 반환할 때 토큰을 붙여 넣어 exp가 지났는지부터 확인합니다. 만료 배지로 즉시 판단할 수 있습니다.
로그인 토큰 내용 점검
백엔드가 발급한 토큰에 sub, role, 권한 같은 클레임이 의도대로 담겼는지 payload를 펼쳐 확인합니다.
alg 알고리즘 확인
header의 alg 필드로 HS256(대칭키)인지 RS256(비대칭키)인지 파악해 검증 방식을 맞춥니다.
프런트엔드 토큰 디버깅
브라우저에 저장된 토큰을 외부 사이트로 보내지 않고 로컬에서 안전하게 디코딩해 발급·만료 시각을 점검합니다.
활용 팁
- sub는 사용자 식별자, iss는 발급 주체, aud는 토큰 대상을 의미하는 표준 등록 클레임입니다.
- 만료(exp)가 지난 토큰은 서버에서 거부됩니다. 401 오류가 날 때 가장 먼저 확인할 값입니다.
- header의 alg 필드로 서명 알고리즘(HS256, RS256 등)을 확인할 수 있습니다. alg가 none인 토큰은 서명이 없어 위험합니다.
- exp·iat·nbf는 초 단위 Unix 타임스탬프입니다. nbf(not before)는 이 시각 이전에는 토큰이 유효하지 않다는 의미입니다.
- JWT의 payload는 암호화가 아니라 인코딩일 뿐입니다. 비밀번호 같은 민감 정보를 payload에 담지 마세요.
- 이 도구는 서명을 검증하지 않으므로, 토큰이 위조되지 않았는지 판단하려면 서버에서 비밀키·공개키로 검증해야 합니다.
자주 묻는 질문
서명도 검증해 주나요?
아니요. 이 도구는 header와 payload를 디코딩해 내용을 보여 줄 뿐, 서명을 검증하지 않습니다. 토큰의 진위 판단은 서버에서 비밀키/공개키로 수행해야 합니다.
토큰이 서버로 전송되나요?
아니요. 디코딩은 브라우저에서만 이루어지며 토큰이 외부로 전송되지 않습니다. 실제 인증 토큰도 안전하게 확인할 수 있습니다.
만료 여부는 어떻게 판단하나요?
payload의 exp(초 단위 타임스탬프)와 현재 시각을 비교해 만료 여부를 표시합니다. 기기 시계가 틀어져 있으면 판단도 달라질 수 있습니다.
왜 디코딩이 실패하나요?
JWT가 아닌 문자열이거나, 복사 과정에서 일부가 잘렸거나, 공백·줄바꿈이 섞인 경우 실패할 수 있습니다. 점(.)으로 구분된 부분이 온전한지 확인하세요.
payload를 수정해 새 토큰을 만들 수 있나요?
이 도구는 읽기 전용 디코더입니다. payload를 바꿔도 유효한 서명이 없으면 서버에서 거부되므로 토큰 재발급은 서버에서 해야 합니다.
header와 payload는 어떻게 인코딩되어 있나요?
둘 다 Base64URL로 인코딩된 JSON입니다. 일반 Base64와 달리 + 대신 -, / 대신 _를 쓰고 끝의 = 패딩을 생략합니다. 이 도구가 자동으로 표준형으로 복원해 디코딩합니다.
서명(signature) 부분은 왜 보여 주지 않나요?
세 번째 부분인 서명은 비밀키로 생성된 검증용 값이라 디코딩해도 사람이 읽을 수 있는 정보가 아닙니다. 이 도구는 내용 확인이 목적이라 header와 payload만 표시합니다.
JWT와 세션 쿠키 중 무엇이 더 나은가요?
정답은 없습니다. JWT는 서버에 상태를 저장하지 않아 확장에 유리하지만, 발급 후 즉시 무효화하기 어렵습니다. 세션은 서버에서 바로 폐기할 수 있지만 저장소가 필요합니다. 요구사항에 맞게 선택하세요.