Provides the passkey ceremonies for Frontoffice/Backoffice:
- register options,
- register finalize,
- list passkeys for authenticated user,
- delete passkey,
- auth options,
- auth finalize returning an access token.
- GraphQL auth resolver operations:
passkey_register_optionspasskey_register_finalizepasskey_listpasskey_deletepasskey_activate_localpasskey_auth_optionspasskey_auth_finalize
register_options:{ user_id, label, hostname, origin? }register_finalize:{ challenge_id, registration_json }list_for_user:user_iddelete_for_user:{ passkey_id, user_id }activate_local:{ passkey_id, user_id }auth_options:{ challenge_id, origin? }auth_finalize:{ auth_challenge_id, authentication_json }
- Register options
- Creates a short-lived challenge in
passkey_challengescollection. - TTL index handles expiry (5 minutes).
- Returns
challenge_id+ JSON options payload for WebAuthnnavigator.credentials.create.
- Creates a short-lived challenge in
- Register finalize
- Consumes (finds and deletes) the pending challenge from MongoDB.
- Verifies the full registration payload with SimpleWebAuthn (
expectedOrigin+expectedRPID). - Stores passkey metadata in
passkeyscollection.
- Auth options
- Resolves passkey by local
challenge_idmarker inpasskeyscollection. - Creates auth pending challenge in
passkey_challenges. - Returns JSON options for
navigator.credentials.get.
- Resolves passkey by local
- Auth finalize
- Consumes auth pending challenge from MongoDB.
- Verifies the full authentication payload against stored passkey material in
passkeyscollection. - Updates
last_used_atand signs JWT access token.
- Activate local
- Validates passkey ownership for authenticated user in MongoDB.
- Returns passkey data needed to reconstruct the local marker.
- Creates/deletes persistent passkey records in MongoDB.
- Produces JWT
access_tokencompatible with current login flow.
- Expired or unknown pending challenge.
- Unknown passkey / mismatching credential.
- User missing during auth finalize.
bddService.passkey(MongoDB Repository)bddService.userjwtServiceloggerService
api/src/usecases/auth/passkey.usecase.tsapi/src/services/db/mongo/repositories/passkey.repository.tsapi/src/services/db/models/passkey.model.tsapi/src/graphql/auth/auth.resolver.tsapi/src/graphql/auth/auth.gql.types.ts