Passkeys count as strong MFA on their own; a passkey
login never prompts for a TOTP code.
Enable 2FA
Enrollment is session-only (the dashboard flow lives in Settings → Security) and takes two calls:1
Set up: get the secret
secret, an otpauthUri, and a qrDataUrl; render
the QR for scanning, or offer the secret for manual entry. Calling setup
when 2FA is already enabled returns 400 totp_already_enabled.2
Enable: confirm with a live code
totpEnabled: true on
your user object); an interrupted setup never locks anyone out.Logging in with 2FA
Password login becomes two steps:401; just restart
from step 1.
Disable 2FA
Disabling requires both your password and a live code; possession of an unlocked session alone isn’t enough:Recovery
Lost the authenticator? Your Aro Media admin can clear 2FA on the account (areset_2fa action in the admin portal). You’ll sign in with your password
alone and can re-enroll a new device.
How secrets are protected
- TOTP secrets are AES-256-GCM encrypted at rest; they exist in plaintext only transiently during verification.
- Accepted codes are replay-guarded per time step.
- Login attempts remain subject to the global rate limits and lockout.