Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
View all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
Accelerator
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Type
/
to search
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading.
Please reload this page
.
OpenStackweb
/
openstackid
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
2
Code
Issues
0
Pull requests
24
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Feature | Add Login UI MFA Flow
- #142
#142
Open
matiasperrone-exo
wants to merge 21 commits into
feat/mfa---usercontroller-mfa-integration-device-trust-cookie-management-audit-wiring-and-2fa-rate-limiting---cu-86ba2zc6p
OpenStackweb/openstackid:feat/mfa---usercontroller-mfa-integration-device-trust-cookie-management-audit-wiring-and-2fa-rate-limiting---cu-86ba2zc6p
from
feat/mfa---login-ui-flow
OpenStackweb/openstackid:feat/mfa---login-ui-flow
Copy head branch name to clipboard
Conversation
Commits
21
(21)
Checks
Files changed
Open
Feature | Add Login UI MFA Flow
#142
matiasperrone-exo
wants to merge 21 commits into
feat/mfa---usercontroller-mfa-integration-device-trust-cookie-management-audit-wiring-and-2fa-rate-limiting---cu-86ba2zc6p
OpenStackweb/openstackid:feat/mfa---usercontroller-mfa-integration-device-trust-cookie-management-audit-wiring-and-2fa-rate-limiting---cu-86ba2zc6p
from
feat/mfa---login-ui-flow
OpenStackweb/openstackid:feat/mfa---login-ui-flow
Copy head branch name to clipboard
Commits
Commits on Jul 23, 2026
feat: Add Login UI MFA Flow
matiasperrone-exo
authored and
smarcet
committed
1f2e9b6
View commit details
Copy full SHA for 1f2e9b6
Browse repository at this point
fix: rename HTMLRender.jsx to .js so webpack can resolve it
Show description for cc97f0f
smarcet
committed
cc97f0f
View commit details
Copy full SHA for cc97f0f
Browse repository at this point
fix: revert password submit to native form POST
Show description for 0eca371
smarcet
committed
0eca371
View commit details
Copy full SHA for 0eca371
Browse repository at this point
fix: add missing React import in HTMLRender to prevent ReferenceError crash
Show description for 7a8dc5d
smarcet
committed
7a8dc5d
View commit details
Copy full SHA for 7a8dc5d
Browse repository at this point
fix: cancel login now invalidates the pending MFA challenge server-side
Show description for e39b715
smarcet
committed
e39b715
View commit details
Copy full SHA for e39b715
Browse repository at this point
fix: stop the 2FA verify XHR from following cross-origin OAuth2 redirects
Show description for f67f5b1
smarcet
committed
f67f5b1
View commit details
Copy full SHA for f67f5b1
Browse repository at this point
fix: cancel and session-expiry now correctly return to the password screen
Show description for a062848
smarcet
committed
a062848
View commit details
Copy full SHA for a062848
Browse repository at this point
fix: clear identity fields from session on MFA cancel/verify-success
Show description for f338172
smarcet
committed
f338172
View commit details
Copy full SHA for f338172
Browse repository at this point
fix: invalidate pending MFA challenge when identity chip is cleared
Show description for ee02cca
smarcet
committed
ee02cca
View commit details
Copy full SHA for ee02cca
Browse repository at this point
fix: block submitting an expired MFA code
Show description for 8c3e6fe
smarcet
committed
8c3e6fe
View commit details
Copy full SHA for 8c3e6fe
Browse repository at this point
fix: seed the MFA countdown with the remaining OTP lifetime after refresh
Show description for 0330c3b
smarcet
committed
0330c3b
View commit details
Copy full SHA for 0330c3b
Browse repository at this point
feat: add expiry countdown to the passwordless OTP form, dedup shared code-entry UI
Show description for 246c777
smarcet
committed
246c777
View commit details
Copy full SHA for 246c777
Browse repository at this point
fix: surface cancelLogin failures instead of swallowing them in console
Show description for e2fc8e8
smarcet
committed
e2fc8e8
View commit details
Copy full SHA for e2fc8e8
Browse repository at this point
Commits on Jul 24, 2026
feat: add 30s resend cooldown to the passwordless OTP screen
Show description for 0a96737
smarcet
committed
0a96737
View commit details
Copy full SHA for 0a96737
Browse repository at this point
feat: rate-limit the passwordless OTP issuance endpoint server-side
Show description for 2bcadb3
smarcet
committed
2bcadb3
View commit details
Copy full SHA for 2bcadb3
Browse repository at this point
fix: mock EmailOTPMFAChallengeStrategy's new getCreatedAt() call in unit tests
Show description for 5970171
smarcet
committed
5970171
View commit details
Copy full SHA for 5970171
Browse repository at this point
feat: passwordless OTP screen survives browser refresh
Show description for 5b352a1
smarcet
committed
5b352a1
View commit details
Copy full SHA for 5b352a1
Browse repository at this point
fix: show success snackbar when passwordless OTP code is (re)sent
Show description for 7597db9
smarcet
committed
7597db9
View commit details
Copy full SHA for 7597db9
Browse repository at this point
fix: set Retry-After/X-RateLimit-* headers on 2FA rate-limit 429s
Show description for 3fcd5fa
smarcet
committed
3fcd5fa
View commit details
Copy full SHA for 3fcd5fa
Browse repository at this point
fix: persist identity chip fallback for new passwordless-OTP users
Show description for 29a84db
smarcet
committed
29a84db
View commit details
Copy full SHA for 29a84db
Browse repository at this point
Commits on Jul 25, 2026
Refactor 2FA rate limiting to use RateLimiter::for() named limiters
Show description for 28b5bc1
smarcet
committed
28b5bc1
View commit details
Copy full SHA for 28b5bc1
Browse repository at this point
You can’t perform that action at this time.