from datetime import datetime, timedelta from jose import JWTError, jwt SECRET_KEY = "smartstudy_secret_key_2024_change_in_production" ALGORITHM = "HS256" ACCESS_TOKEN_EXPIRE_HOURS = 24 def create_token(data: dict) -> str: payload = data.copy() payload["exp"] = datetime.utcnow() + timedelta(hours=ACCESS_TOKEN_EXPIRE_HOURS) return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) def decode_token(token: str) -> dict: try: return jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) except JWTError: return None