import secrets from passlib.context import CryptContext # Password hashing context pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") def verify_password(plain_password: str, hashed_password: str) -> bool: """ Verify a plain password against a hashed password. """ return pwd_context.verify(plain_password, hashed_password) def get_password_hash(password: str) -> str: """ Hash a password using bcrypt. """ return pwd_context.hash(password) def generate_token() -> str: """ Generate a secure random token. """ return secrets.token_urlsafe(32)