import uuid from datetime import datetime, timedelta, timezone import jwt from app.config import settings def create_token(user_id: uuid.UUID) -> str: payload = { "sub": str(user_id), "iat": datetime.now(timezone.utc), "exp": datetime.now(timezone.utc) + timedelta(minutes=settings.jwt_expire_minutes), } return jwt.encode(payload, settings.jwt_secret, algorithm=settings.jwt_algorithm) def decode_token(token: str) -> dict | None: try: return jwt.decode(token, settings.jwt_secret, algorithms=[settings.jwt_algorithm]) except jwt.PyJWTError: return None