사용 방법
- Authorization 헤더, 쿠키 또는 브라우저 개발자 도구에서 토큰을 복사하세요. 앞에 붙은 “Bearer ”는 자동으로 제거됩니다.
- 토큰을 입력란에 붙여 넣으세요. 헤더와 페이로드가 형식을 갖춘 JSON으로 표시됩니다.
- 상태 표시줄과 클레임 표에서 발급자, 대상, 만료 날짜를 현지 시간으로 확인하세요.
- 다른 곳에서 사용하려면 헤더 또는 페이로드 JSON을 복사하세요.
작동 방식
일반적인 서명 형식(JWS)의 JSON Web Token(JWT, RFC 7519)은 점으로 구분된 세 부분으로 이루어져 있으며, 각 부분은 base64url로 인코딩되어 있습니다. 헤더에는 토큰 서명에 사용한 알고리즘이 표시됩니다. 예를 들어 HS256(HMAC과 SHA-256 사용) 또는 RS256(RSA)이 있습니다. 페이로드에는 사용자와 토큰 자체에 관한 정보인 클레임이 들어 있습니다. 서명을 통해 서버는 헤더와 페이로드가 변경되지 않았는지 확인할 수 있습니다.
헤더와 페이로드는 암호화된 것이 아니라 인코딩된 것뿐입니다. 토큰을 가진 사람은 누구나 내용을 읽을 수 있으며, 이 도구도 바로 그 작업을 합니다. JWT 페이로드에 비밀 정보를 넣지 마세요.
디코딩만으로는 토큰의 유효성을 확인할 수 없습니다. 발급자의 키가 없으면 서명이 진짜인지 알 수 없으므로, 여기 표시된 결과를 토큰을 신뢰할지 결정하는 데 사용해서는 안 됩니다. 서명, 알고리즘, exp, nbf, iss, aud를 확인하는 유지 관리가 잘되는 JWT 라이브러리를 사용해 서버에서 검증하세요.
등록된 클레임은 표에 설명되어 있습니다. exp, nbf, iat는 NumericDate 값으로, 1970년 1월 1일 UTC 이후 경과한 초를 나타냅니다. 이 도구는 해당 값을 사용자의 시간대로 변환하고 기기 시계와 비교합니다. 서버에서 시차를 고려해 허용하는 짧은 오차 범위는 적용하지 않습니다. 기기 시계가 잘못되어 있으면 상태도 잘못 표시됩니다.
다섯 부분으로 이루어진 토큰은 암호화된 JWT(JWE)입니다. 키 없이는 페이로드를 디코딩할 수 없으므로 이 도구는 형식만 표시합니다.
예시
API에서 401 오류가 반환되는 이유는 무엇인가요?
앱에서 전송하는 액세스 토큰을 디코딩하세요. 상태 줄에 “...에 만료됨”이라고 표시되면 클라이언트에서 토큰을 갱신해야 합니다. aud에 https://api.example.com이 표시되는데 https://api2.example.com에 요청을 보내고 있다면 대상이 일치하지 않습니다.
OpenID Connect ID 토큰 확인하기
로그인 제공업체의 ID 토큰에는 iss(제공업체), sub(변하지 않는 사용자 ID), aud(클라이언트 ID), iat, exp와 이메일, 이름 등의 프로필 클레임이 들어 있습니다. 토큰을 디코딩하면 앱이 실제로 어떤 클레임을 받는지 확인할 수 있습니다.
타임스탬프 클레임 읽기
페이로드에 "exp": 1735689600이 있다고 가정해 보세요. 클레임 표에는 이 값이 2025년 1월 1일 00:00:00 UTC로 표시됩니다. 사용자의 현지 시간으로 변환한 날짜와 함께, 해당 시점이 얼마나 지났거나 얼마나 남았는지도 확인할 수 있습니다.
자주 묻는 질문
이 도구는 JWT 서명을 검증하나요?
아니요. 헤더와 페이로드만 디코딩합니다. 검증하려면 비밀 키(HS256) 또는 발급자의 공개 키(RS256 및 ES256)가 필요합니다. 신뢰할 수 있는 라이브러리를 사용해 서버에서 검증해야 합니다.
여기에 토큰을 붙여넣어도 안전한가요?
토큰은 브라우저에서 디코딩되며 어디에도 전송되지 않습니다. 그래도 유효한 토큰은 만료될 때까지 비밀번호처럼 사용할 수 있으므로, 만료된 토큰이나 테스트용 토큰을 사용하는 것이 좋습니다. 신뢰할 수 없는 도구에는 운영 환경의 토큰을 붙여넣지 마세요.
누구나 페이로드를 읽을 수 있는 이유는 무엇인가요?
서명된 JWT는 암호화가 아닌 base64url 인코딩을 사용합니다. 서명은 토큰이 변경되지 않도록 보호할 뿐, 내용을 읽지 못하게 하지는 않습니다. 내용을 비밀로 유지해야 한다면 암호화된 JWT(JWE)를 사용하거나 데이터를 서버에 보관하세요.
“exp”는 무엇을 의미하며, 단위는 무엇인가요?
exp는 NumericDate 형식의 만료 시간입니다. 1970-01-01 00:00:00 UTC부터 지난 초를 정수로 나타내며, 밀리초가 아닙니다. 이 시각이 되거나 지난 토큰은 거부해야 합니다.
“유효한 base64url이 아닙니다”라는 오류가 표시되는 이유는 무엇인가요?
복사하는 동안 토큰이 잘리거나 변경되었을 수 있습니다. 예를 들어 끝부분의 문자가 빠졌거나, 토큰 양쪽에 따옴표가 붙었거나, URL 인코딩으로 점이 %2E로 바뀌었을 수 있습니다. 발급된 원본 토큰을 그대로 붙여 넣으세요.
개인정보 보호
토큰은 브라우저에서 JavaScript로 디코딩됩니다. 서버로 전송되거나 저장되지 않으며 분석 데이터에도 포함되지 않습니다. 서명 검증이나 키 조회를 하지 않으므로 네트워크 요청이 발생하지 않습니다.