JWT 디코더

토큰의 헤더·페이로드를 열어보고 만료를 확인합니다

불러오는 중…

이 도구가 도움이 됐나요?

이 도구는

JWT(JSON Web Token)의 header·payload를 디코딩해서 안에 담긴 클레임을 보여줍니다. 토큰은 점(.)으로 구분된 세 부분(header, payload, signature)으로 이뤄지는데, 이 도구는 앞의 두 부분을 Base64URL로 디코딩해 JSON으로 보여줄 뿐 서명을 검증하지 않습니다. exp 클레임이 있으면 만료 여부도 함께 판정합니다.

사용법

  1. 토큰을 입력창에 붙여넣거나 예시 버튼으로 샘플 토큰을 불러옵니다.
  2. 점으로 구분된 세 부분 중 header와 payload가 각각 JSON으로 펼쳐집니다.
  3. payload에 exp가 있으면 만료됨/유효함 배지와 만료 시각이 표시됩니다.
  4. payload 아래 목록에서 iss·sub·aud 같은 표준 클레임의 뜻을 함께 확인합니다.
  5. 복사 버튼으로 header나 payload JSON을 바로 가져갑니다.
  6. 서명(signature) 부분은 해독되지 않은 원문 그대로 표시되며, 검증에는 비밀 키가 필요하다는 안내가 함께 뜹니다.

자주 묻는 질문

JWT 디코딩은 서명 검증과 다른가요?
네, 완전히 다릅니다. 이 도구는 토큰 내용을 읽기만 할 뿐 서명이 진짜인지는 확인하지 않습니다. 서명 검증에는 발급자만 아는 비밀 키(또는 공개 키)가 필요한데, 이 도구는 키를 요구하지 않고 받지도 않습니다.
만료됨(expired)이라고 나오면 이 토큰은 이제 쓸 수 없나요?
이 도구는 payload의 exp 클레임과 현재 시각만 비교해서 알려주는 참고 정보입니다. 실제로 토큰이 거부되는지는 서버의 검증 로직에 달려 있습니다.
서명(signature) 부분은 왜 해독이 안 되나요?
서명은 header와 payload를 비밀 키로 서명한 값이라 원문으로 복원되는 데이터가 아닙니다. 이 도구는 서명 문자열을 그대로 보여주기만 합니다.
입력한 토큰이 서버로 전송되나요?
아니요. 디코딩은 전부 브라우저 안에서 이뤄지고 토큰은 서버로 전송되지 않습니다.
예시 버튼을 누르면 나오는 토큰이 실제로 유효한가요?
아닙니다. 예시 토큰은 형식을 보여주기 위한 데모 값으로, 서명이 실제로 유효하지 않습니다. 만료 시각(exp)만 먼 미래로 잡혀 있어 유효함으로 표시될 뿐, 진짜 서비스에서 발급한 토큰이 아닙니다.
이 도구로 새 토큰을 만들거나 서명할 수 있나요?
아니요. 이 도구는 기존 토큰을 읽기만 하며 새 토큰을 만들거나 서명하는 기능은 없습니다. 토큰을 발급하려면 서버 쪽에서 비밀 키로 서명하는 라이브러리를 쓰세요.
형식이 잘못됐다는 오류는 언제 뜨나요?
점(.)으로 구분된 부분이 2개 미만이면 '점으로 구분된 형식이 아닙니다'가 뜨고, 점은 있지만 Base64URL로 디코딩할 수 없거나 JSON이 아니면 '디코딩할 수 없습니다'가 뜹니다. 앞뒤에 공백이 섞여 들어간 경우에도 디코딩이 실패할 수 있습니다.
header나 payload 아래에 클레임 설명이 안 보일 때가 있어요.
payload에 iss·sub·aud·exp·nbf·iat·jti 같은 표준 클레임이 있을 때만 그 아래에 설명이 붙습니다. 커스텀 클레임(예: role, name)은 JSON 원문에는 나오지만 별도 설명 목록에는 나오지 않습니다.

이 페이지는 토큰을 디코딩만 할 뿐 서명 검증은 하지 않으며, 입력한 토큰을 서버로 보내지 않습니다. 만료되지 않은 것처럼 보여도 서명이 위조된 토큰일 수 있으니 실제 인증에는 반드시 서버 쪽 검증을 거치세요.

비슷한 도구