JWT 디코더로 로그인 만료와 권한 claim 빠르게 확인하기

개발

프론트엔드에서는 로그인된 것처럼 보이는데 API가 401이나 403을 반환할 때, 토큰 만료인지 권한 claim 문제인지 먼저 구분해야 합니다.

이럴 때는 브라우저에서 바로 쓸 수 있는 Dante Tools를 열어 먼저 손으로 검증해보는 것이 좋습니다. 작은 확인 과정을 거치면 배포 후 되돌리는 시간을 줄일 수 있습니다.

JWT 디코더 사용 화면
JWT 디코더 사용 화면

언제 쓰면 좋은가

스테이징 인증 오류를 디버깅할 때 JWT payload의 exp, role, scope를 확인하는 안전한 루틴입니다.

확인할 claim 예시

exp: 만료 시간
role: admin 또는 user
scope: 필요한 API 권한
aud: 호출 대상 서비스

실무 루틴

  1. 운영 토큰이 아니라 재현용 스테이징 토큰을 사용합니다.
  2. JWT를 붙여 넣고 header와 payload를 확인합니다.
  3. exp 값을 Unix Timestamp 도구로 변환해 실제 만료 시간을 봅니다.
  4. role, scope, aud가 API가 요구하는 값과 같은지 비교합니다.

배포 전 체크

  • 서명 검증 없이 payload만 보고 신뢰하지는 않았는가
  • 운영 사용자 토큰이나 장기 토큰을 외부에 공유하지 않았는가
  • 클라이언트 시간과 서버 시간이 크게 어긋나 있지 않은가

JWT 디코딩은 인증 문제의 방향을 빠르게 잡아줍니다. 다만 payload 확인과 서명 검증은 다른 단계라는 점을 분명히 해야 합니다.