Impedisci la creazione di una nuova passkey se ne esiste già una

Per evitare di creare una nuova passkey se ne esiste già una nella stessa passkey usa la proprietà facoltativa excludeCredentials del provider WebAuthn PublicKeyCredentialCreationOptions dizionario.

La proprietà excludeCredentials è un array di descrittori per le chiavi pubbliche già esistenti per un determinato utente. Queste informazioni vengono fornite Server della parte coinvolta quando vuole impedire la creazione di nuove credenziali per un utente esistente su un unico autenticatore.

L'array excludeCredentials ha i seguenti attributi:

  • type: una stringa che descrive il tipo di credenziale a chiave pubblica da utilizzare generati. Il valore predefinito è "public-key".
  • id: un ArrayBuffer che corrisponde a una credenziale di chiave pubblica esistente identificatore (PublicKeyCredential.rawId). Questo identificatore viene generato durante la creazione dell'istanza PublicKeyCredential.

Il client restituisce un errore se l'utente tenta di creare un una nuova credenziale su un autenticatore di piattaforma che contiene già uno dei credenziali elencate in questo parametro. Se l'autenticatore contiene già un chiave pubblica di questo tipo, l'autenticatore raccoglie il consenso dell'utente come di solito e mostra all'utente un indicatore di riuscita senza la creazione di nuove credenziali. Un Viene generata un'eccezione InvalidStateError, che indica che l'utente ha già credenziale valida corrispondente a excludeCredentials.

"excludeCredentials": [
    {"id": "<id-1>", "type": "public-key"},
    {"id": "<id-2>", "type": "public-key"}
  ]

Questo JSON può essere usato per impedire agli autenticatori con uno dei credenziali non vengano registrate più di una volta. Ogni elemento "<id-*>" deve essere verrà compilato con l'identificatore della credenziale da escludere.

Scopri di più su excludeCredentials nel W3C suggerimento