JWT 디코더
이 도구는 무엇인가요
JSON 웹 토큰은 브라우저와 서버 사이에서 로그인 정보를 전달하는 문자열입니다. 겉보기에는 의미 없는 문자의 나열 같지만, 실제로는 점으로 이어진 세 부분, 즉 헤더와 페이로드와 서명으로 이루어져 있습니다. 앞의 두 부분은 암호화된 것이 아니라 인코딩만 되어 있어서, 토큰을 가진 사람이라면 누구나 내용을 읽을 수 있습니다.
이 도구는 토큰을 세 부분으로 나누어 헤더와 페이로드를 읽을 수 있는 형태로 보여 줍니다. 모든 처리는 브라우저 안에서 이루어지므로, 붙여 넣은 토큰이 사용자의 기기를 벗어나지 않습니다.
어떤 때 쓸모가 있나요
로그인 흐름을 점검하면서 서버가 토큰에 어떤 사용자 아이디와 권한을 담았는지 확인하고 싶을 때 쓸 수 있습니다.
요청이 계속 권한 없음으로 거절될 때, 토큰이 이미 만료되었는지 확인할 수 있습니다.
두 환경을 비교하면서 발급자와 대상이 설정과 일치하는지 확인할 때 쓸 수 있습니다.
로그인 토큰의 구조를 설명해야 할 때, 말로 풀어 놓는 대신 실제 구조를 보여 줄 수 있습니다.
외부 서비스에서 받은 토큰의 서명 알고리즘을 먼저 파악한 다음 검증을 연결하고 싶을 때 유용합니다.
사용하는 방법
토큰 전체를 입력 상자에 붙여 넣습니다. 세 부분과 두 개의 점을 모두 포함해야 합니다.
헤더와 페이로드가 정리된 형태로 아래에 표시됩니다. 각 영역 옆의 복사 버튼으로 내용을 복사할 수 있습니다.
요약 카드에서 서명 알고리즘과 만료 상태를 확인합니다. 토큰에 만료 시각이 담겨 있다면 아직 유효한지, 남은 시간이 얼마인지 함께 표시됩니다.
토큰의 형식이 올바르지 않으면 어느 부분에서 해석이 실패했는지 짧은 안내가 나타납니다.
자주 묻는 질문
토큰이 어딘가로 전송되나요? 전송되지 않습니다. 해석은 브라우저에 내장된 기능만으로 이루어지며, 어디에도 업로드되거나 기록되거나 저장되지 않습니다. 네트워크 연결을 끊은 상태에서도 그대로 동작합니다.
서명이 유효한지도 검사해 주나요? 검사하지 않습니다. 서명을 검증하려면 토큰에 서명한 비밀 키나 공개 키가 필요하며, 그 키는 서버에 두어야 합니다. 이 도구는 원래 읽을 수 있도록 만들어진 부분만 보여 주고, 검증은 서버의 몫으로 남겨 둡니다.
비밀번호 없이도 페이로드를 읽을 수 있는 이유는 무엇인가요? 페이로드는 base64url로 인코딩되어 있는데, 이는 보안 장치가 아니라 전송을 위한 표기 방식입니다. 내용이 바뀌지 않았음을 보장하는 것은 서명입니다. 그래서 토큰의 페이로드에는 비밀번호나 민감한 정보를 담지 않아야 합니다.
iat, exp, sub 같은 클레임은 무슨 뜻인가요? 표준으로 정해진 짧은 이름입니다. iat는 토큰이 발급된 시점, exp는 더 이상 받아들여지지 않는 시점, sub는 토큰의 주체를 뜻하며 보통 사용자를 가리킵니다. 시간과 관련된 클레임 옆에는 읽기 쉬운 날짜가 함께 표시됩니다.