{ }JSONKit.tools

JWT 디코더 (온라인)

JSON Web Token을 붙여넣어 실제로 무엇이 들어 있는지 확인하세요. 헤더와 페이로드는 정렬된 JSON으로, 만료와 유효 시작 시각은 쉬운 말로 옮겨 보여 줍니다.

토큰

디코딩 결과

입력을 기다리는 중…

이 도구에 대하여

JWT는 점으로 이어진 세 개의 Base64url 조각입니다. 헤더, 페이로드, 서명이죠. 앞의 둘은 부호화된 JSON일 뿐이라 어떤 토큰이든 키 없이 읽을 수 있습니다. 이 페이지의 목적이 그것이고, 동시에 토큰에 비밀을 담으면 안 되는 이유이기도 합니다. 서명은 보여 주지만 검증하지는 않습니다. 검증에는 키가 필요한데 키는 브라우저 탭에 둘 것이 아니기 때문입니다. 사람들이 여기 오는 이유는 대개 시간 클레임이므로, exp와 nbf는 사용자의 시계와 비교해 원시 epoch 숫자가 아니라 "3일 뒤 만료" 같은 형태로 알려 줍니다.

사용 방법

  1. 1토큰을 왼쪽 패널에 붙여넣습니다. Bearer 접두사는 붙어 있어도 잘라 냅니다.
  2. 2오른쪽에서 디코딩된 헤더와 페이로드를 읽습니다. 만료는 상태 표시줄에 나옵니다.
  3. 3페이로드가 커서 일부를 접고 싶다면 트리로 전환하세요.

자주 묻는 질문

›서명을 검증해 주나요?

아니며, 브라우저 도구로는 불가능합니다. 검증에는 비밀 키나 공개 키가 필요한데, 비밀을 웹 페이지에 붙여넣는 것이야말로 하면 안 되는 일입니다. 여기서는 토큰이 주장하는 내용을 읽을 수 있게 디코딩만 합니다. 검증은 키를 가진 서버에서 하세요.

›JWT는 암호화되어 있나요?

아닙니다. 헤더와 페이로드는 Base64url이며 암호화가 아니라 부호화입니다. 토큰을 가진 사람은 누구나 모든 클레임을 읽을 수 있고, 그래서 JWT에는 비밀번호나 카드 번호 같은 비밀을 절대 담으면 안 됩니다.

›iat, exp, nbf는 무슨 뜻인가요?

발급 시각, 만료, 유효 시작 시각이며 모두 Unix epoch 이후의 초입니다. 이 페이지는 사용자의 시계를 써서 exp와 nbf를 쉬운 말로 바꿉니다("3일 뒤 만료", "2시간 전 만료").

›토큰이 디코딩되지 않는 이유는?

대개 잘린 복사본입니다. JWT에는 점으로 나뉜 세 부분이 정확히 필요합니다. 앞에 남은 "Bearer " 때문에도 깨지고, 중간에 URL 인코딩된 토큰도 마찬가지입니다.

›제 토큰이 어딘가로 전송되나요?

아닙니다. 디코딩은 전적으로 브라우저에서 이뤄지며 업로드도, 기록도, 저장도 되지 않습니다. 살아 있는 토큰은 인증 수단이므로 여기서는 다른 페이지보다 더 중요합니다.