Summary
Add WebAuthn (FIDO2) server-side endpoints for passkey registration (enrollment) and authentication assertion using @simplewebauthn/server.
Context
Phase 3 replaces the server startup password ceremony with WebAuthn-based biometric/passkey verification. This issue adds the core server endpoints that handle the WebAuthn protocol.
Acceptance Criteria
Dependencies
Scope Boundaries
- Does NOT include the web UI (separate issue)
- Does NOT include the approval link flow (separate issue)
- Pure protocol endpoints only
Summary
Add WebAuthn (FIDO2) server-side endpoints for passkey registration (enrollment) and authentication assertion using
@simplewebauthn/server.Context
Phase 3 replaces the server startup password ceremony with WebAuthn-based biometric/passkey verification. This issue adds the core server endpoints that handle the WebAuthn protocol.
Acceptance Criteria
@simplewebauthn/serveras a runtime dependencysrc/server/webauthn.tswith Fastify route pluginPOST /api/webauthn/register/options— generate registration options (challenge, RP info)POST /api/webauthn/register/verify— verify registration response, store credentialPOST /api/webauthn/authenticate/options— generate authentication options (challenge)POST /api/webauthn/authenticate/verify— verify assertion response~/.2kc/webauthn-credentials.json0o600webauthn.rpName(default: "2keychains")webauthn.rpId(default: derived from server hostname)webauthn.origin(default: derived from server URL)Dependencies
Scope Boundaries