Postman에서 JWT를 빠르게 검사하고 디코딩하는 방법 (올바른 방법)
Source: Dev.to

Introduction
현대 API와 함께 작업하는 개발자라면 JWT(JSON Web Token)를 일상적으로 사용하고 있을 겁니다. 흐름은 익숙하죠: API 호출이 실패하고, 토큰 자체인지, 만료됐는지, 혹은 클레임 때문인지 머리를 쥐어뜯게 됩니다.
보통 Postman(또는 Insomnia와 같은 유사 도구)을 사용해 API를 테스트하지만, 방금 받은 JWT를 디코딩하려 할 때 Postman의 기본 기능만으로는 별도의 브라우저 탭을 열어 디버깅해야 하는 경우가 많습니다.
이 가이드는 Postman에서 토큰을 간단히 확인하는 기본적인 방법을 소개하고, 도구 간 전환 없이 깊이 있고 안전하게 디코딩·검증할 수 있는 한 가지 툴을 알려드립니다.
Method 1: The Quick‑and‑Dirty Postman Inspect (The Limitations)
Viewing the Token in the Console
응답 본문이나 헤더에 JWT가 포함되어 있다면, Postman Console이 빠르게 확인할 수 있는 최선의 방법입니다:
- Postman Console을 엽니다 (View → Show Postman Console 또는
Ctrl/Cmd + Alt + C). - 요청을 보냅니다.
- Console에서 요청/응답을 클릭해 원시 헤더와 본문을 확인합니다.
- 토큰(점(.)으로 구분된 세 개의 Base64 청크)을 복사합니다.
핵심: 여전히 Base64‑인코딩된 문자열만 가지고 있습니다. 중간 부분(페이로드)을 수동으로 Base64‑디코드할 수는 있지만, 토큰 서명을 쉽게 검증하거나, 만료 시간을 사람이 읽을 수 있는 형태로 확인하거나, 토큰 구조를 즉시 검증할 수는 없습니다.
Using Pre‑Request/Test Scripts
좀 더 고급 사용자를 위해, Postman 스크립트를 작성해 페이로드 섹션을 직접 디코드할 수 있지만, 이는 코드를 작성하고 라이브러리를 추가해야 합니다.
// Example of a Postman Test Script to inspect a received JWT
pm.test("Check JWT Expiration", function () {
const token = pm.response.json().access_token; // Adjust path as needed
// Split the token into its parts (Header, Payload, Signature)
const [header, payload, signature] = token.split('.');
// Decode the payload part (Base64URL safe decoding)
const decodedPayload = Buffer.from(payload, 'base64').toString('utf8');
const claims = JSON.parse(decodedPayload);
// Log the claims to the Console for inspection
console.log("JWT Payload:", claims);
// Example: Check if the token is already expired
const isExpired = claims.exp < Date.now() / 1000;
pm.expect(isExpired).to.be.false;
});
작동은 하지만, 매 요청마다 작성해야 하는 보일러플레이트 코드이며 서명 검증은 여전히 처리되지 않습니다.
Method 2: The Right Way – Use a Dedicated JWT Decoder Tool
디버깅을 할 때는 속도, 안전성, 검증이 필요합니다. 가장 효율적인 워크플로는 Postman에서 토큰을 복사해 전용 개발자용 툴에 붙여넣는 것입니다.
고품질 툴은 즉시 세 가지를 수행해야 합니다:
- Instant Decode: 헤더와 페이로드를 사람이 읽을 수 있는 JSON으로 변환.
- Signature Verification: 제공된 비밀키(해당되는 경우)를 사용해 서명을 검증.
- Error Flagging: 만료된 토큰이나 잘못된 서명과 같은 일반적인 문제를 강조 표시.
Why a Dedicated Tool Is Superior to Postman for Debugging
- 100 % Client‑Side Decoding: 최고의 툴은 디코딩을 전부 브라우저에서 수행하므로 비밀키와 토큰이 절대로 외부로 나가지 않습니다. 이는 DevCenterTools JWT Decoder가 구현된 방식입니다.
- Built‑in Validation:
exp(만료),iat(발행 시점) 등 등록된 클레임을 자동으로 검사하고, 유효하지 않거나 만료된 경우 빨간색으로 표시합니다. - Algorithm Support: HS256, RS256 등 다양한 알고리즘을 올바르게 처리하고, 필요한 입력(비밀키 또는 공개키)에 대해 안내합니다.
- Speed: 토큰을 복사해 붙여넣기만 하면 데이터가 즉시 표시되어, 커스텀 Postman 스크립트를 작성·유지보수하는 시간을 절약할 수 있습니다.
Your Debugging Workflow Upgrade
- Postman에서 요청을 보내 JWT를 받습니다.
- 전체 JWT 문자열을 복사합니다.
- DevCenterTools JWT Decoder에 붙여넣습니다.
- 디코드된 헤더와 페이로드를 즉시 확인하고, 비밀키를 제공해 서명을 검증합니다.
이 간단한 단계만으로 문제를 바로 파악할 수 있습니다: 토큰의 페이로드/클레임에 문제가 있나요, 아니면 API의 토큰 처리에 문제가 있나요?
Conclusion
Postman은 API 테스트에 필수적인 도구이지만, JWT 디코딩·검증과 같은 복잡한 작업을 전문 유틸리티에 맡기면 디버깅 사이클이 크게 빨라집니다. Postman과 브라우저 탭을 오가며 디코딩하고 있다면, 빠르고 안전하며(클라이언트‑사이드) 토큰을 자동으로 검증해 주는 도구를 사용하세요.