이지유틸

관련 유틸

JWT 디코더

JWT 토큰의 헤더와 페이로드를 디코딩해 내용을 확인하세요. 모든 처리는 브라우저에서만 이루어집니다.

JWT 구조 해부: 헤더, 페이로드, 서명

JSON Web Token은 점(.)으로 연결된 세 개의 Base64Url 조각입니다. 헤더는 서명 알고리즘을 선언하고, 페이로드는 클레임(누가, 언제, 무엇을 위해)을 담으며, 서명은 서버가 위변조를 감지하게 해줍니다.

1. 알아두면 좋은 표준 클레임

  • exp: 만료 시각(Unix 초) — 이 시각이 지난 토큰은 거부돼야 합니다.
  • iat: 발급 시각으로 토큰 수명을 디버깅할 때 유용합니다.
  • sub / aud / iss: 주체, 대상, 발급자 — 토큰이 누구에 관한 것이고 누구를 위한 것인지 나타냅니다.

2. 세션 만료 버그 디버깅

"갑자기 로그아웃되는" 버그 대부분은 exp 문제입니다. 토큰을 디코딩해 exp와 현재 시각을 비교하고, 리프레시 로직이 만료 이후가 아니라 이전에 동작하는지 확인하세요.

3. 보안 기본 수칙

페이로드에 비밀 정보를 넣지 말고, 서명 검증은 반드시 서버에서 하고, 토큰 수명은 짧게 유지하세요. 브라우저에서는 localStorage보다 httpOnly 쿠키에 토큰을 보관하는 것이 안전합니다.

"JWT는 봉인된 편지가 아니라 서명된 엽서입니다. 누구나 읽을 수 있습니다."