파이썬을 사용한 JWT 토큰 강제 만료 처리 방법과 로깅 방법

JWT 토큰 강제 만료 처리 방법

JWT (JSON Web Token)은 인증을 위해 사용되는 토큰 기술입니다. 보안을 강화하기 위해 일정 시간이 지난 토큰을 강제로 만료시키는 것이 좋습니다. 파이썬에서는 다음과 같은 방법으로 JWT 토큰을 강제로 만료시킬 수 있습니다:

  1. JWT 토큰을 생성할 때 만료 시간(expiration time)을 설정합니다. 이 값을 토큰의 payload에 포함시켜야 합니다.

     import datetime
     import jwt
    
     secret_key = "my_secret_key"
     token_payload = {
         "user_id": 1234,
         "exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=30) # 만료 시간 설정
     }
     token = jwt.encode(token_payload, secret_key)
    
  2. 토큰을 검증할 때 토큰의 만료 시간을 확인합니다. 현재 시간과 토큰의 만료 시간을 비교하여 만료된 토큰인지 확인할 수 있습니다.

     import datetime
     import jwt
    
     secret_key = "my_secret_key"
     token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMjM0LCJleHAiOjE2MjIyMTIwMDB9.T26Z61G7uU2nzchVqxUgWuJ1TK4mBufL2ijE5w-3I0A"
    
     try:
         decoded_token = jwt.decode(token, secret_key)
         exp = datetime.datetime.fromtimestamp(decoded_token["exp"])
         if exp < datetime.datetime.now():
             # 토큰 만료 처리
             print("Token has expired")
         else:
             # 토큰 유효
             print("Token is valid")
     except jwt.ExpiredSignatureError:
         # 토큰 만료 처리
         print("Token has expired")
     except jwt.InvalidTokenError:
         # 토큰 검증 실패
         print("Invalid token")
    

로깅 방법

로그는 애플리케이션의 동작 및 오류를 추적하는 데 도움이 되는 중요한 도구입니다. 파이썬에서는 로깅을 위해 logging 모듈을 사용할 수 있습니다. 로그 레벨을 설정하여, 필요한 정보를 기록할 수 있습니다. 에러가 발생했을 때 디버깅을 용이하게 하기 위해, 예외가 발생한 곳과 그 원인을 로그에 남기는 것이 좋습니다. 다음은 로깅을 사용하는 예입니다:

import logging

# 로그 레벨 설정
logging.basicConfig(level=logging.DEBUG)

try:
    # 오류가 발생할 수 있는 코드
    result = 10 / 0
except ZeroDivisionError as e:
    # 예외 로그 남기기
    logging.error("Error occurred: %s", str(e))

로그 레벨은 다음과 같이 설정할 수 있습니다:

로그는 파일에 저장할 수도 있으며, 여러 가지 방식으로 필터링하고 형식을 지정할 수 있습니다. 로그를 효과적으로 사용하여 애플리케이션의 동작을 추적하고, 오류를 디버깅할 수 있습니다.

#Python #JWT #토큰강제만료 #로그 #파이썬