Skip to content

feat(auth): surface the login second factor (ENG-6906) - #46

Draft
tbosch82 wants to merge 2 commits into
mainfrom
taylor/eng-6906-e4c-2fa
Draft

tbosch82 wants to merge 2 commits into
mainfrom
taylor/eng-6906-e4c-2fa

Conversation

@tbosch82

@tbosch82 tbosch82 commented Sep 9, 2026

Copy link
Copy Markdown

Problem

E4c (ENG-6906) parks a login on a second factor (stage:'mfa') which the Para portal hosts inside the web auth session. AuthStage had no mfa case, so parseAuthStateFromResult threw "Missing required fields" on a parked login.

Solution

AuthStage.mfa + AuthState.secondFactor: MfaChallenge? (mode, step, methods, attemptsRemaining) parsed from the bridge result. Native passkey login is unchanged: native passkeys are reclassified as login (first) factors on the backend.

Test evidence

Not compiled locally (no Xcode on the build machine) — needs a swift build / CI run.

Rollout / docs

Pairs with the user-management and js-monorepo E4c PRs; no behavior change until the backend's LOGIN_MFA_ENABLED is on.

🤖 Generated with Claude Code

https://claude.ai/code/session_0173UgSR6rZnThkEKr4jeHyn

tbosch82 and others added 2 commits September 9, 2026 13:38
…-factor refusal

AuthStage gains .mfa and AuthState carries the MfaChallenge the portal hosts;
ParaError.passkeyIsSecondFactor maps the bridge's PASSKEY_IS_SECOND_FACTOR code
so apps route an enclave account to email/social sign-in, where the portal asks
for the passkey as the second step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0173UgSR6rZnThkEKr4jeHyn
… stay primary)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0173UgSR6rZnThkEKr4jeHyn
@claude

claude Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant