hfcron / backend /core /security.py
Ajitdoval's picture
Create backend/core/security.py
f106d2e verified
Raw
History Blame Contribute Delete
932 Bytes
import jwt
from datetime import datetime, timedelta
from cryptography.fernet import Fernet
from backend.core.config import settings
# Initialize Fernet for AES encryption
cipher_suite = Fernet(settings.ENCRYPTION_KEY.encode())
def create_access_token(data: dict):
"""Generates a JWT token for user sessions."""
to_encode = data.copy()
expire = datetime.utcnow() + timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
to_encode.update({"exp": expire})
encoded_jwt = jwt.encode(to_encode, settings.JWT_SECRET, algorithm=settings.JWT_ALGORITHM)
return encoded_jwt
def encrypt_hf_token(token: str) -> str:
"""Encrypts the Hugging Face token before saving to DB."""
return cipher_suite.encrypt(token.encode()).decode()
def decrypt_hf_token(encrypted_token: str) -> str:
"""Decrypts the Hugging Face token for API usage."""
return cipher_suite.decrypt(encrypted_token.encode()).decode()