Part of the Passkeys project. Parent: #36. Depends on the schema/config groundwork.
Scope
A signed-in customer can register a passkey on their current device.
POST /api/customers/me/passkeys/register/begin — issues registration options with a server-generated challenge
POST /api/customers/me/passkeys/register/finish — verifies the attestation and stores the credential
Requirements
The challenge must be server-generated, single-use, and expiring. A replayable challenge defeats the point of the ceremony.
Registration requires an authenticated session — this is not a sign-up path.
Already-registered credential IDs must be excluded so the same authenticator cannot be enrolled twice.
The customer names the passkey, or it gets a sensible default, so the management UI can distinguish "phone" from "laptop".
Out of scope
Signing in with the passkey, and the management UI — separate issues.
Part of the Passkeys project. Parent: #36. Depends on the schema/config groundwork.
## Scope
A signed-in customer can register a passkey on their current device.
- `POST /api/customers/me/passkeys/register/begin` — issues registration options with a server-generated challenge
- `POST /api/customers/me/passkeys/register/finish` — verifies the attestation and stores the credential
## Requirements
- The challenge must be server-generated, single-use, and expiring. A replayable challenge defeats the point of the ceremony.
- Registration requires an authenticated session — this is not a sign-up path.
- Already-registered credential IDs must be excluded so the same authenticator cannot be enrolled twice.
- The customer names the passkey, or it gets a sensible default, so the management UI can distinguish "phone" from "laptop".
## Out of scope
Signing in with the passkey, and the management UI — separate issues.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the Passkeys project. Parent: #36. Depends on the schema/config groundwork.
Scope
A signed-in customer can register a passkey on their current device.
POST /api/customers/me/passkeys/register/begin— issues registration options with a server-generated challengePOST /api/customers/me/passkeys/register/finish— verifies the attestation and stores the credentialRequirements
Out of scope
Signing in with the passkey, and the management UI — separate issues.