JWT 디코더

JWT 토큰을 디코딩하여 헤더, 페이로드, 서명을 검사합니다. 클레임 확인, 만료 상태 점검, 서명 알고리즘 이해 — 모두 클라이언트 사이드에서 처리됩니다.

JWT 디코더는 무엇인가요?

JWT 디코더는 JSON 웹 토큰을 세 가지 Base64URL 인코딩 구성 요소(헤더, 페이로드, 서명)로 분리하여 사람이 읽을 수 있는 JSON 형식으로 표시합니다. RFC 7519에 정의된 JWT는 현대 웹 API, 마이크로서비스, 단일 페이지 애플리케이션, 모바일 앱에서 무상태 인증과 권한 부여의 지배적인 표준입니다. JWT는 두 개의 점으로 세 부분으로 나뉜 간결한 URL 안전 문자열입니다: 헤더(토큰 유형과 서명 알고리즘 명시), 페이로드(사용자 ID, 역할, 권한, 만료 시간 같은 클레임 포함), 서명(토큰이 변조되지 않았음을 검증하는 암호화 해시). JWT는 개발 중에 HTTP Authorization 헤더, OAuth 흐름, SSO 시스템, API 게이트웨이 응답에서 지속적으로 나타납니다. 401 Unauthorized 오류로 로그인이 실패하거나, 세션이 예기치 않게 만료되거나, 토큰이 부여하는 사용자 역할을 확인해야 하거나, 다중 서비스 인증 흐름을 디버그할 때 JWT 페이로드를 읽는 것이 첫 번째 디버깅 단계입니다.

JWT 디코더 사용 방법

입력 필드에 완전한 JWT 문자열을 붙여넣으세요. 세 개의 점으로 구분된 세 개의 Base64URL 문자열처럼 보입니다(xxxxx.yyyyy.zzzzz). 도구가 즉시 세 섹션을 분리하고 디코딩합니다. 헤더 패널은 서명 알고리즘(alg, 일반적으로 HS256, RS256 또는 ES256)과 토큰 유형(typ: JWT)을 보여줍니다. 페이로드 패널은 표준 등록 클레임(iss, sub, aud, exp, nbf, iat, jti)과 애플리케이션이 추가하는 커스텀 클레임(사용자 ID, 역할, 이메일, 테넌트 ID)을 포함한 모든 클레임을 보여줍니다. 페이로드의 타임스탬프(exp, iat, nbf)는 토큰이 발급된 시점과 만료 시점을 즉시 확인할 수 있도록 자동으로 사람이 읽을 수 있는 날짜로 변환됩니다. 시각적 만료 표시기는 토큰이 현재 유효한지, 이미 만료되었는지, 아직 활성화되지 않았는지 보여줍니다. 모든 디코딩은 브라우저에서 이루어집니다.

자주 묻는 질문

실제 JWT를 여기에 붙여넣어도 안전한가요?

네. 모든 디코딩은 로컬 JavaScript를 사용하여 완전히 브라우저에서 수행됩니다. 어떤 서버에도 데이터가 전송되지 않습니다. 그러나 JWT는 액세스 자격 증명임을 기억하세요. 비밀번호처럼 취급하세요. 공유 컴퓨터에서 작업할 때 웹 도구에 프로덕션 토큰을 붙여넣지 마시고, 유효한 JWT를 가진 누구나 만료될 때까지 인증에 사용할 수 있으므로 포럼, GitHub 이슈, 채팅 메시지 같은 공개 공간에 JWT를 게시하는 것을 피하세요.

이 도구가 JWT 서명이 유효한지 확인할 수 있나요?

아니요. JWT 서명 검증에는 비밀 키(HMAC HS256 같은 알고리즘의 경우) 또는 공개 키(RS256, ES256 같은 비대칭 알고리즘의 경우)가 필요하며, 클라이언트 측 도구에서는 이 비밀에 안전하게 접근할 수 없습니다. 이 디코더는 Base64URL 인코딩되어 공개적으로 읽을 수 있는 헤더와 페이로드만 읽습니다. 프로덕션 서명 검증에는 언어에 맞는 서버 측 JWT 라이브러리(Node.js의 jsonwebtoken, Python의 PyJWT, Java의 java-jwt)를 사용하세요.

표준 JWT 클레임은 무엇을 의미하나요?

RFC 7519에 정의된 등록 클레임: iss(발급자 - 토큰을 발급한 인증 서버 URL), sub(주체 - 토큰이 나타내는 대상, 보통 사용자 ID), aud(대상 - 토큰이 의도된 대상, 예: API 식별자), exp(만료 시간 - 토큰을 거부해야 하는 Unix 타임스탬프), nbf(이전 불가 - 토큰이 아직 유효하지 않은 Unix 타임스탬프), iat(발급 시간 - 토큰이 생성된 Unix 타임스탬프), jti(JWT ID - 재생 공격을 방지하는 고유 토큰 식별자). 이 외의 커스텀 클레임은 애플리케이션별로 다릅니다.

JWT, JWS, JWE의 차이는 무엇인가요?

JWT(JSON 웹 토큰)는 토큰 개념의 일반적인 용어입니다. JWS(JSON 웹 서명)는 서명된 JWT로, 가장 일반적인 유형입니다. 페이로드는 읽을 수 있지만 서명이 변조되지 않았음을 보장합니다. JWE(JSON 웹 암호화)는 페이로드 자체가 암호화된 JWT로 의도된 수신자만 읽을 수 있습니다. 이 디코더는 JWS 토큰(표준 서명 형식)을 처리합니다. 암호화된 JWE 토큰은 다르게 보이며 페이로드를 읽으려면 복호화 키가 필요합니다.

디코딩할 JWT 토큰을 어떻게 얻나요?

브라우저에서 JWT 토큰은 일반적으로 다음에 저장됩니다: localStorage 또는 sessionStorage(F12 개발자 도구 > 애플리케이션 > 스토리지에서 확인), 쿠키(F12 > 애플리케이션 > 쿠키, access_token, auth_token, jwt라는 이름의 토큰 찾기), 네트워크 요청의 Authorization 헤더(F12 > 네트워크 탭 > 요청 클릭 > 헤더 > 'Authorization: Bearer xxxxx' 찾기). 코드에서는 인증 라이브러리(Firebase, Auth0, Supabase, NextAuth)가 현재 세션의 액세스 토큰을 검색하는 메서드를 제공합니다.