가이드

Base64URL과 JWT: 디코딩과 신뢰는 다릅니다

JWT는 일반 Base64가 아니라 Base64URL을 씁니다. 읽기와 검증을 나누어 보세요.

세 부분

서명된 JWT는 보통 header, payload, signature 세 부분을 점으로 연결합니다.

두 글자가 다릅니다

Base64URL은 +를 -, /를 _로 바꿉니다. JWT는 끝의 = 패딩도 생략합니다.

읽기는 검증이 아닙니다

payload에서 iss, sub, aud, exp를 읽을 수 있습니다. 하지만 서명과 발급자를 증명하지 않습니다. 서버가 올바른 키와 알고리즘으로 검증해야 합니다.

alg 주의

허용 알고리즘은 애플리케이션이 정합니다. 예상 밖의 alg 값은 실패로 처리해야 합니다.

디버그 흐름

점으로 나누고, 앞 두 부분을 Base64URL로 읽고, 필요하면 패딩을 더한 뒤 서명, issuer, audience, 시간을 확인합니다.

기술 자료