| import os | |
| from jose import jwt, JWTError | |
| from typing import Dict, Any | |
| from ..core.logger import SingletonLogger | |
| def decodeJWT(token: str) -> Dict[str, Any] | None: | |
| """ | |
| Decode and verify a JWT token. | |
| Args: | |
| token: The JWT token string to decode | |
| Returns: | |
| Dict containing the token payload if valid, None otherwise | |
| """ | |
| try: | |
| decoded_token = jwt.decode( | |
| token, | |
| os.getenv("JWT_SECRET_KEY"), | |
| algorithms=[os.getenv("JWT_ALGORITHM")], | |
| ) | |
| return decoded_token | |
| except JWTError as e: | |
| SingletonLogger().get_logger().error(f"JWT decode error: {e}") | |
| return None |