We required MFA. One query parameter turned it off.
We challenged the second factor on the login page and never re-checked it at the token endpoint. So a valid password plus a hand-edited return URL walked straight past MFA. The fix, and the rule it taught us: MFA is a property of the session you issue, not a step in the login screen.


