사용 방법
- 입력칸에 JWT를 붙여넣습니다.
Authorization: Bearer eyJ...헤더에서 복사했다면Bearer가 붙어 있어도 됩니다. - 헤더와 페이로드가 보기 좋게 정렬된 JSON으로 나오고, 알고리즘(alg)·타입(typ)·발급자(iss)·주체(sub) 같은 주요 값이 위에 정리됩니다.
iat(발급),nbf(사용 시작),exp(만료)는 UTC와 현지 시각, “3시간 후” 같은 상대 시간으로 바뀌고, 만료된 토큰은 빨간 경고로 표시됩니다.
JWT의 구조
JWT(JSON Web Token, RFC 7519)는 점(.)으로 나뉜 세 부분입니다. 앞의 두 부분은 base64url로 인코딩된 JSON일 뿐 암호화되어 있지 않습니다.
| 부분 | 내용 | 예 |
|---|---|---|
| 헤더 | 서명 알고리즘과 토큰 타입 | {"alg":"HS256","typ":"JWT"} |
| 페이로드 | 클레임(사용자 ID, 권한, 만료 시각 등) | {"sub":"user_8f3a2c","exp":1798761600} |
| 서명 | 헤더+페이로드를 키로 서명한 값 | FkUzQgnG... |
시간 클레임은 1970-01-01 00:00:00 UTC부터 센 초 단위(NumericDate)입니다. 예를 들어 exp: 1798761600은 2027-01-01 00:00:00 UTC, 한국 시간으로 2027-01-01 09:00입니다. 밀리초 단위 숫자를 넣는 실수가 잦은데, 이 경우 만료 시각이 수만 년 뒤로 표시됩니다. 숫자만 따로 바꿔 보려면 유닉스 타임스탬프 변환기를 쓰세요.
주의할 점
- 이 도구는 서명을 검증하지 않습니다. 페이로드는 누구나 고쳐서 다시 인코딩할 수 있으므로, 화면에 보이는 값을 믿고 권한을 판단하면 안 됩니다. 검증은 서버에서 비밀키(HS256) 또는 공개키(RS256·ES256)로 해야 합니다.
- 페이로드에 비밀번호·주민등록번호 같은 민감 정보를 넣지 마세요. 토큰을 가진 사람은 누구나 디코딩해서 읽을 수 있습니다.
alg가none이면 서명이 없는 토큰입니다. 서버가 이를 받아들이면 위조가 가능하므로 경고를 표시합니다.- 점이 5개로 나뉜 토큰은 암호화된 JWE라서 키 없이는 내용을 볼 수 없습니다.
자주 묻는 질문
운영 환경 토큰을 붙여넣어도 안전한가요?
디코딩은 브라우저 안에서 자바스크립트로만 이뤄지고 토큰을 어디에도 전송하지 않습니다. 다만 유효한 액세스 토큰은 그 자체로 비밀번호와 같으니, 화면 공유 중이거나 공용 PC라면 사용 후 지우는 습관을 들이세요.
만료 판정은 어떤 시각 기준인가요?
이 기기의 현재 시각입니다. RFC 7519에 따라 현재 시각이 exp와 같거나 지나면 만료, nbf보다 이르면 아직 사용할 수 없음으로 봅니다. 서버와 기기 시계가 다르면 결과가 몇 초~몇 분 어긋날 수 있습니다.
페이로드를 직접 수정하고 싶어요.
수정한 JSON을 Base64 인코더의 URL-safe 옵션으로 인코딩할 수는 있지만, 서명이 맞지 않아 서버에서 거부됩니다. 테스트용 토큰은 서버의 키로 새로 발급받아야 합니다.