브라우저에서 처리하는 개발자 도구

JWT 디코더

JSON Web Token을 즉시 디코딩하고 확인합니다. 토큰을 디코딩 API로 보내지 않고 헤더, 페이로드, claims와 만료 상태를 읽을 수 있습니다.

100% 브라우저에서 처리. JWT는 이 브라우저 탭에서 디코딩되며 디코딩 API로 전송되거나 이 도구에 저장되지 않습니다.

브라우저 처리

디코딩은 현재 브라우저 탭에서 실행됩니다.

secret 불필요

서명된 JWT의 헤더와 페이로드는 서명 key 없이 읽을 수 있습니다.

시간 claims

exp, iat, nbf를 읽기 쉬운 시각으로 변환합니다.

디코딩 ≠ 검증

내용을 읽었다고 서명 진위가 증명되지는 않습니다.

JWT 디코더란?

JWT 디코더는 Base64URL로 인코딩된 헤더와 페이로드를 읽기 쉬운 JSON으로 바꿉니다. 일반적인 서명 JWT/JWS는 header.payload.signature 3개 세그먼트입니다.

인증 문제를 디버깅할 때 alg, kid, iss, aud, scope, role, exp를 먼저 확인합니다. 서명 JWT는 보통 암호화가 아니라 인코딩이므로 claims를 읽는 데 signing secret이 필요하지 않습니다.

읽을 수 있는 것과 신뢰할 수 있는 것은 다릅니다. 실제로 토큰을 허용하기 전에 신뢰 key로 서명을 검증하고 애플리케이션이 기대하는 claims를 검증합니다.

JWT claims 이해하기

claims는 payload 안의 값입니다. 인증과 권한 부여에서 자주 쓰는 등록 claim부터 보면 원인을 빠르게 좁힐 수 있습니다.

iss

Issuer

JWT를 발급한 주체입니다.

sub

Subject

토큰이 나타내는 주체입니다.

aud

Audience

JWT가 대상으로 하는 수신자입니다.

exp

Expiration

이 시각 이후에는 토큰을 허용하지 않아야 합니다.

nbf

Not Before

이 시각 전에는 토큰을 허용하지 않아야 합니다.

iat

Issued At

토큰이 발급된 시각입니다.

디코딩, validation, 서명 검증은 서로 다른 작업입니다

디코딩

Base64URL 헤더와 페이로드를 JSON으로 읽습니다.

Validation

구조와 exp, nbf, issuer, audience 같은 애플리케이션 조건을 확인합니다.

JWT Validator 열기 →

서명 검증

신뢰하는 secret 또는 공개 키로 서명이 signed data와 일치하는지 암호학적으로 확인합니다.

서명 검증 열기 →

JWT 디코더 FAQ

secret 없이 JWT를 디코딩할 수 있나요?

가능합니다. 일반 JWS의 header와 payload는 Base64URL 인코딩입니다. secret 또는 공개 키는 서명 검증에 필요합니다.

디코딩되면 유효한 JWT인가요?

아닙니다. 읽을 수 있는 구조라는 뜻일 뿐입니다. 진위는 서명, 수용 가능성은 exp, nbf, iss, aud 등의 검증이 필요합니다.

JWT 검증
붙여넣은 JWT가 서버로 전송되나요?

디코더는 브라우저에서 실행되며 토큰 본문을 디코딩 API로 전송하거나 localStorage, 쿠키, URL에 의도적으로 저장하지 않습니다.

exp, iat, nbf는 무엇인가요?

exp는 만료, iat는 발급 시각, nbf는 사용 가능 시작 시각입니다.

JWT 만료 확인
읽을 수 있는 JWT가 왜 401을 반환하나요?

만료, nbf, 잘못된 key, issuer/audience 불일치, scope/role 부족 등이 원인일 수 있습니다.

JWT 디버깅

테스트용 또는 마스킹 토큰으로 재현할 수 있다면 실제 production credential을 붙여넣지 마세요. 브라우저 처리는 확장 프로그램이나 기기 내 악성코드까지 막아주지는 않습니다.