Skip to content

Passkey account creation: identifier-first flow#3761

Closed
RyanSinger wants to merge 28 commits into
sandstorm-io:devfrom
RyanSinger:feat/passkey-account-creation
Closed

Passkey account creation: identifier-first flow#3761
RyanSinger wants to merge 28 commits into
sandstorm-io:devfrom
RyanSinger:feat/passkey-account-creation

Conversation

@RyanSinger

Copy link
Copy Markdown

Summary

  • Adds email-based identifier-first flow for passkey login/registration
  • Server routes to authentication or registration based on whether email has a passkey
  • Enables WebAuthn conditional UI (autofill integration) for returning users
  • New users can create an account with just an email and a passkey

Builds on #3760

Test plan

  • New user: enter email, click Continue with Passkey, complete registration ceremony, verify account created
  • Returning user: enter same email, verify authentication ceremony (not registration)
  • Conditional UI: click email field, verify passkey appears in autofill
  • Error handling: invalid email, cancelled ceremony, HTTP context

RyanSinger and others added 28 commits May 6, 2026 15:21
Specifies WebAuthn/passkey support as a standalone login method
for Sandstorm, following existing auth patterns and best practices.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
10-task plan covering npm deps, database/profile integration,
server-side handler, service registration, client UI, admin config,
account settings, icon, i18n, and verification.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… credentials

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ntication methods

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… account settings management

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…n provider

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nCredentials, i18n, initiateLogin)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Since we set verification to 'preferred' instead of 'required', we
should not enforce it in later checks.
…efaults

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…st flow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…t creation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@RyanSinger RyanSinger closed this May 9, 2026
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.

2 participants