Getting Started with 2FA¶
-
Install Package
-
Add Middleware
# With encryption (Optional, Recommended) from two_fast_auth import TwoFactorMiddleware app.add_middleware( TwoFactorMiddleware, get_user_secret_callback=get_user_secret, encryption_key="your-fernent-key-here", excluded_paths=["/setup-2fa"] ) # Without encryption from two_fast_auth import TwoFactorMiddleware app.add_middleware( TwoFactorMiddleware, get_user_secret_callback=get_user_secret, encryption_key="your-fernent-key-here", excluded_paths=["/setup-2fa"] )
-
Create Setup Endpoint (Encrypted)
from two_fast_auth import TwoFactorAuth @app.post("/setup-2fa") async def setup_2fa(user: User = Depends(current_user)): tfa = TwoFactorAuth() encrypted_secret = TwoFactorAuth.encrypt_secret( tfa.secret, encryption_key="your-key-here" # From middleware config ) return { "qr_code": tfa.generate_qr_code(user.email), "secret": encrypted_secret # Store this in DB }
-
Implement Verification (Encrypted)
-
Manual Secret Handling (Optional)