fromtwo_fast_authimportTwoFactorAuthfromfastapi.responsesimportStreamingResponse@app.post("/setup-2fa")asyncdefsetup_2fa(user:User=Depends(current_active_user)):tfa=TwoFactorAuth(issuer_name="MyApp",qr_fill_color="#4a86e8")qr_code=tfa.generate_qr_code(user.email)# Store secret in databaseuser.two_fa_secret=tfa.secretawaituser.save()returnStreamingResponse(qr_code,media_type="image/png")
@app.post("/setup-2fa")asyncdefsetup_2fa(user:User=Depends(current_active_user)):tfa=TwoFactorAuth()encrypted_secret=TwoFactorAuth.encrypt_secret(tfa.secret,encryption_key="your-encryption-key"# Match middleware key)user.two_fa_secret=encrypted_secretawaituser.save()return{"qr_code":tfa.generate_qr_code(user.email),"secret":"Store this encrypted value: "+encrypted_secret}