프로그래밍언어/파이썬[Error]
[파이썬][Error] 094. AuthenticationError - InvalidTokenError
about_IT
2025. 5. 31. 05:38
728x90
AuthenticationError: InvalidTokenError
오류는 사용자 인증 과정에서 전달된 토큰(token)이 유효하지 않거나 위조되었을 때 발생하는 예외입니다. 이 오류는 일반적으로 JWT(JSON Web Token) 기반 인증, OAuth 인증, API 키 검증 등에서 많이 발생하며, 인증 서버 또는 클라이언트의 토큰 처리 로직에 문제가 있을 수 있습니다.
이 오류는 보통 PyJWT
, Authlib
, requests-oauthlib
같은 외부 라이브러리를 사용할 때 발생하며, 토큰이 만료되었거나 서명이 조작되었거나 형식이 올바르지 않은 경우에 발생합니다.
● 오류 발생 예시
import jwt
try:
decoded = jwt.decode("invalid.token.value", "secret", algorithms=["HS256"])
except jwt.InvalidTokenError:
print("유효하지 않은 토큰입니다.")
잘못된 형식의 JWT 토큰을 decode하려 할 경우 InvalidTokenError
가 발생합니다.
● 해결 방법
- 토큰 유효성 검사: 서명, 만료 여부, 구조 확인
- 클라이언트 측에서 토큰 발급/저장 방식 점검
- 디코딩 시 사용한 키와 알고리즘 일치 여부 확인
● 예시 코드 (토큰 유효성 검사 포함)
import jwt
from jwt.exceptions import ExpiredSignatureError, InvalidTokenError
token = "..."
try:
decoded = jwt.decode(token, "secret", algorithms=["HS256"])
except ExpiredSignatureError:
print("토큰이 만료되었습니다.")
except InvalidTokenError:
print("유효하지 않은 토큰입니다.")
● 자주 하는 실수
- 만료된 토큰을 계속 사용하거나 재발급 로직 누락
- 잘못된 secret 키 또는 알고리즘으로 decode 시도
- 토큰 포맷(JWT 구조 등) 자체가 손상됨
● 결론
AuthenticationError - InvalidTokenError
는 인증 토큰이 유효하지 않을 때 발생하는 오류입니다. 보안상의 이유로 정확한 키, 유효 시간, 구조 등을 확인하는 철저한 검증이 필요하며, 예외 발생 시 명확한 사용자 피드백을 제공해야 합니다.
728x90