---
title: "Référence d'API — @nodefony/security — webauthn"
source: docs/api/security/webauthn.md
url: https://nodefony.github.io/nodefony-core/docs/api/security/webauthn/
---


[Documentation](../../../) › [Référence d'API](../../) › [`@nodefony/security`](../) › webauthn

> Générée depuis les déclarations de types publiées de `@nodefony/security` **10.0.0-beta.5** : exactement ce que reçoit une application qui l'installe. Cette page n'existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

## `@nodefony/security`

`import { … } from "@nodefony/security"` — 7 symboles.

### Classes (1)

#### `MemoryWebAuthnCredentialStore`

```ts
class MemoryWebAuthnCredentialStore implements IWebAuthnCredentialStore
```

- `findById(credentialId: string): Promise<IWebAuthnCredential | null>` — Credential par son id (base64url), ou `null` — résolution à l'authentification.
- `findByUser(userId: string): Promise<IWebAuthnCredential[]>` — Tous les credentials d'un utilisateur — pour `allowCredentials` (authentification ciblée) et l'UX « mes appareils ».
- `countByUser(userId: string): Promise<number>` — Nombre de credentials d'un utilisateur — **natif** par backend (`COUNT`, `countDocuments`, `SCARD`), jamais un `findByUser().length`.
- `save(credential: IWebAuthnCredential): Promise<void>` — Persiste un nouveau credential (fin de la cérémonie d'enregistrement).
- `update(credentialId: string, patch: WebAuthnAuthUpdate): Promise<void>` — Met à jour l'état post-authentification (compteur, sauvegarde, UV, usage).
- `delete(credentialId: string): Promise<void>` — Révoque un credential (l'utilisateur retire un appareil).
- `listPage(query: IWebAuthnListQuery): Promise<IPage<IWebAuthnCredentialSummary>>` — Page de passkeys pour le data plane admin — ne matérialise jamais plus d'une page, filtres appliqués au store, `publicKey` exclue (cf `IWebAuthnCredentialSummary`).
- `countCredentials(query: IWebAuthnListQuery): Promise<number>` — Nombre de passkeys correspondant aux filtres (`COUNT` natif), ou **`-1`** si le backend ne sait pas compter à coût raisonnable (Redis : un total exigerait un `SCAN` complet O(N) sur un chemin froid — …
- `snapshot(): WebAuthnStoreSnapshot` — Instantané sérialisable de l'état courant (pour la persistance fichier).
- `restore(snapshot: WebAuthnStoreSnapshot): void` — Remplace l'état par celui d'un instantané (reconstruit l'index par user).

### Fonctions (3)

#### `getWebAuthnStoreFactory`

```ts
function getWebAuthnStoreFactory(name: string): WebAuthnStoreFactory
```

Fabrique d'un store par nom, ou `undefined` si inconnu.

#### `listWebAuthnStores`

```ts
function listWebAuthnStores(): string[]
```

Noms enregistrés (validation boot, introspection Studio, tests).

#### `registerWebAuthnStore`

```ts
function registerWebAuthnStore(name: string, factory: WebAuthnStoreFactory): void
```

Enregistre (ou remplace) la fabrique d'un store de credentials WebAuthn.

### Interfaces (2)

#### `IWebAuthnStoreFactoryContext`

```ts
interface IWebAuthnStoreFactoryContext
```

Registre de **fabriques de stores de credentials WebAuthn** — résout un nom (`memory`, `drizzle`, `mongoose`, `redis`…) vers une instance, SANS coupler le cœur à un backend en dur.

- `readonly container: Container` — Container DI — résolution de services (ORM, redis…).
- `readonly config: ISecurityConfig` — Config sécurité validée + gelée.

#### `WebAuthnStoreSnapshot`

```ts
interface WebAuthnStoreSnapshot
```

Instantané sérialisable de l'état — base de la persistance fichier.

- `credentials: IWebAuthnCredential[]`

### Types (1)

#### `WebAuthnStoreFactory`

```ts
type WebAuthnStoreFactory = (ctx: IWebAuthnStoreFactoryContext) => IWebAuthnCredentialStore
```

Fabrique d'un store de credentials pour un nom donné.

---

[← Toutes les références d'API](../../)
