JWT 디코더
JSON Web Token(JWT)을 즉시 디코딩합니다. 브라우저에서 실행되므로 토큰이 기기를 벗어나지 않으며, 따라서 프로덕션 비밀 값과 함께 안전하게 사용할 수 있습니다.
이 도구 사용 방법
- 1
입력란에 JWT를 붙여넣습니다.
- 2
디코딩을 클릭하면 헤더와 페이로드가 파싱되어 표시됩니다.
- 3
알고리즘, 클레임(claim), 만료 시각, 발급자를 확인합니다.
JWT란 무엇이며 어떻게 작동하나요?
JSON Web Token(JWT, RFC 7519에 정의됨)은 사용자에 관한 일련의 클레임(claim)을 표현하는 간결하고 URL에 안전한 방식이며, 그러한 클레임이 변조되지 않았다는 암호학적 증명을 함께 제공합니다. JWT는 대부분의 최신 웹 스택에서 인증을 담당합니다. 로그인하면 서버는 사용자 ID와 권한을 담은 JWT를 생성하고, 비밀 키로 서명한 다음 반환합니다. 브라우저는 토큰을 저장하고(보통 localStorage나 쿠키에) 이후의 모든 요청에서 Authorization 헤더에 포함합니다. 서버는 매 요청마다 서명을 검증합니다. 서명이 유효하면 토큰의 클레임을 신뢰하고, 변조된 경우에는 서명이 깨지므로 요청을 거부합니다. JWT는 점으로 구분되며 Base64URL로 인코딩된 세 부분으로 이루어집니다. 헤더는 서명 알고리즘을 선언하고(HMAC-SHA256은 HS256, RSA는 RS256, ECDSA는 ES256, 서명되지 않은 토큰은 none이며 이는 위험하므로 거부해야 합니다), 페이로드(payload)는 실제 클레임을 담으며(주체를 나타내는 'sub', 만료를 나타내는 'exp', 발급 시각을 나타내는 'iat' 같은 표준 클레임과 애플리케이션이 정의하는 모든 사용자 정의 클레임), 서명은 헤더와 페이로드가 비밀 값을 가진 누군가에 의해 서명되었다는 증명입니다. 이 디코더는 공개 정보인 처음 두 부분을 드러냅니다. 서명은 키가 있어야만 검증할 수 있으며, 이것이 모든 JWT 디코더가 클레임을 검증 없이 표시하는 이유입니다.
일반적인 사용 사례
클라이언트가 보내는 JWT를 디코딩하여 인증 문제를 디버깅하세요. 어떤 클레임을 담고 있는지, 누가 발급했는지, 언제 만료되는지 정확히 확인할 수 있습니다.
API 게이트웨이(AWS Cognito, Auth0, Okta)의 JWT를 검사하여 다운스트림 서비스의 클레임 구조를 파악하세요.
사용자 정의 클레임(조직 ID, 역할, 기능 플래그)이 토큰 발급 코드에서 올바르게 설정되는지 확인하세요.
갱신 전후의 토큰을 비교하여 만료가 연장되었는지 확인하세요.
토큰의 알고리즘을 감사하세요. 프로덕션에서 RS256 또는 ES256이 사용되고 'none'은 절대 사용되지 않는지 확인하세요.
서버 로그의 base64url 페이로드를 읽을 수 있는 클레임으로 변환하세요.
자주 묻는 질문
프로덕션 JWT와 함께 사용해도 안전한가요?▼
이 도구가 서명을 검증하나요?▼
JWT가 만료되면 어떻게 되나요?▼
JWT를 암호화할 수 있나요?▼
'alg': 'none'은 무엇을 의미하며 위험한가요?▼
세션 쿠키 대신 JWT를 사용하는 이유는 무엇인가요?▼
JWT의 표준 클레임에는 무엇이 있나요?▼
관련 도구
JSON 포매터 및 검증기
JSON을 온라인에서 정리하고 검증하고 압축합니다. 전적으로 브라우저에서 작동합니다: 데이터가 기기를 벗어나지 않습니다.
XML 포맷터
XML 문서를 포맷하고 보기 좋게 정리합니다. SOAP, 사이트맵, RSS 피드, 구성 파일에 유용합니다.
Base64 인코더 및 디코더
문자열을 Base64로 인코딩하거나 Base64를 텍스트로 디코딩합니다. 개인정보를 보호합니다: 사용자의 브라우저에서 실행됩니다.
URL 인코더 및 디코더
텍스트를 URL에 안전한 인코딩(퍼센트 인코딩)으로, 그리고 그 반대로 변환합니다. 쿼리 문자열, 리디렉션, OAuth 흐름에 유용합니다.
HTML 엔티티 인코더 및 디코더
특수 문자를 HTML 엔티티(&, < 등)로, 그리고 그 반대로 변환합니다. 텍스트를 HTML에 안전하게 삽입하는 데 유용합니다.
CSS 압축기
주석, 공백, 불필요한 문자를 CSS에서 제거하여 파일 크기를 줄입니다.