Add optional TOTP MFA for email/password accounts #76

Merged
TheFurya merged 1 commits from feature/optional-totp-mfa into develop 2026-03-22 09:21:37 +01:00
Owner

Summary

  • Add Settings page with TOTP MFA enrollment (QR code + verification)
  • Support MFA challenge during login for accounts with TOTP enabled
  • Add MFA status indicator in the navigation layout

Test plan

  • Verify TOTP enrollment flow (generate QR, verify code, enable)
  • Verify login prompts for MFA code when TOTP is enabled
  • Verify MFA can be unenrolled from Settings page

🤖 Generated with Claude Code

## Summary - Add Settings page with TOTP MFA enrollment (QR code + verification) - Support MFA challenge during login for accounts with TOTP enabled - Add MFA status indicator in the navigation layout ## Test plan - [ ] Verify TOTP enrollment flow (generate QR, verify code, enable) - [ ] Verify login prompts for MFA code when TOTP is enabled - [ ] Verify MFA can be unenrolled from Settings page 🤖 Generated with [Claude Code](https://claude.com/claude-code)
TheFurya added 1 commit 2026-03-21 14:06:33 +01:00
feat: add optional TOTP MFA for email/password accounts
All checks were successful
CI / backend-tests (pull_request) Successful in 26s
CI / frontend-tests (pull_request) Successful in 28s
7a828d7215
- Add MFA enrollment UI in new Settings page with QR code and backup secret
- Add TOTP challenge step to login flow for enrolled users
- Check AAL after login and show TOTP input when aal2 required
- Add disable MFA option with TOTP re-verification
- Only show MFA options for email/password users (not OAuth)
- Add Settings link to user dropdown menu

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
TheFurya merged commit 50ed370d24 into develop 2026-03-22 09:21:37 +01:00
TheFurya deleted branch feature/optional-totp-mfa 2026-03-22 09:21:38 +01:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: pokemon/nuzlocke-tracker#76