Two-Factor Authentication
Two-factor authentication (2FA) adds a second verification step beyond your password when accessing the Fluxis Dashboard. Some sensitive actions—such as creating API keys—require an active 2FA method.
Dashboard access
Manage 2FA at:
/app/user/2fa
From this page you can enroll methods, complete verification challenges, and remove methods you no longer use.
Supported methods
| Method | Description |
|---|---|
| Email OTP | One-time code sent to your registered email |
| TOTP | Time-based codes from an authenticator app (Google Authenticator, Authy, etc.) |
| Passkey | WebAuthn / FIDO2 hardware or platform keys |
A Google OAuth enrollment endpoint exists in the codebase but is not exposed in the dashboard UI today. Use Email OTP, TOTP, or Passkey.
Enrollment flow
Each method follows a two-step pattern:
- Begin enrollment — start registration and receive setup data (QR code for TOTP, WebAuthn challenge for passkey, or OTP send for email)
- Verify enrollment — confirm with a valid code or passkey assertion to activate the method
Email OTP
- POST enrollment begin → OTP sent to your email
- Enter the code to finish enrollment
TOTP (authenticator app)
- POST enrollment begin → receive secret / QR code
- Scan with your authenticator app
- POST verify with a generated 6-digit code
Passkey
- POST register begin → browser WebAuthn prompt
- POST register finish with the credential response
Using 2FA for protected actions
Sensitive dashboard operations require a verified 2FA session:
- Create challenge — request a challenge for a specific action (e.g. API key creation)
- Verify — submit your OTP, TOTP code, or passkey assertion
- Complete action — proceed within the verified session window
API key creation at /app/api-keys uses the Require2FA() middleware—without a enrolled method, you cannot create new keys.
Enroll at least one 2FA method before attempting to create API credentials. See API Credentials.
Managing methods
| Action | Description |
|---|---|
| List available methods | Methods your organization supports |
| List enrolled methods | Methods active on your account |
| Delete method | Remove a method by ID |
Keep at least one active method to avoid locking yourself out of protected dashboard features.
Password management
From /app/user, you can also:
- View your profile (
GET /user/me) - Change password (
PUT /user/change-password) - Set initial password (
PUT /user/set-password)
These endpoints require dashboard session authentication but not necessarily a fresh 2FA challenge unless policy requires it.
Security recommendations
- Enroll TOTP or passkey — more resistant to email compromise than OTP alone
- Register a backup method — e.g. TOTP + passkey, so one lost device does not block access
- Do not share OTP codes — Fluxis support will never ask for your 2FA code
- Review enrolled methods — remove methods tied to lost devices promptly
API vs dashboard authentication
2FA applies to Dashboard (collaborator) sessions only. REST API authentication uses API key + secret → Bearer token and does not involve 2FA on each API call.
Integrations authenticate with API Credentials; team members authenticate to the dashboard with email, password, and 2FA.
Related documentation
- API Credentials — key creation requires 2FA
- Team & Roles — collaborator access levels
- Sign Up — initial onboarding