CoolFace
Apppublic

zynthdev/loopyfeed

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
utils.py32 linesDownload Raw Back to app
1import base642 3from fastapi import HTTPException4import os5import logging6import json7from jose import jwe8 9logger = logging.getLogger(__name__)10 11SECRET_JWK = base64.b64decode(os.environ["JWE_SECRET_KEY"])12REQUIRED_KEY = os.environ["API_REQUIRED_KEY"]13 14def decrypt_and_validate_token(token: str) -> dict:15    try:16        decrypted_bytes = jwe.decrypt(17            token,18            SECRET_JWK,19        )20        payload = json.loads(decrypted_bytes.decode("utf-8"))21        return payload22    except Exception as e:23        logger.exception("Token decryption/validation failed")24        raise HTTPException(status_code=403, detail="Forbidden")25 26def validate_key(key: str) -> None:27    try:28        if key != REQUIRED_KEY:29            raise HTTPException(status_code=401, detail="Unauthorized")30    except Exception as e:31        logger.exception("Token decryption/validation failed")32        raise HTTPException(status_code=403, detail="Forbidden")