Impedir la creación de una llave de acceso nueva si ya existe una

Para evitar que se cree una llave de acceso nueva si ya existe una en la misma llave de acceso usa la propiedad excludeCredentials opcional de WebAuthn's PublicKeyCredentialCreationOptions diccionario.

La propiedad excludeCredentials es un array de descriptores para claves públicas que ya existen para un usuario determinado. Esta información la proporciona el servidor de la parte de confianza cuando quiere impedir la creación de credenciales nuevas para un usuario existente en un solo autenticador.

El array excludeCredentials tiene los siguientes atributos:

  • type: una cadena que describe el tipo de credencial de clave pública que se va a de red. El valor predeterminado es "public-key".
  • id: Un ArrayBuffer que coincide con una credencial de clave pública existente identificador (PublicKeyCredential.rawId). Este identificador se genera durante la creación de la instancia PublicKeyCredential.

El cliente devuelve un error si el usuario intenta crear un nueva credencial en un autenticador de plataforma que ya contiene uno de los credenciales enumeradas en este parámetro. Si el autenticador ya contiene un de clave pública de este tipo, el autenticador recopila el consentimiento del usuario de forma habitual y le muestra al usuario un indicador de éxito sin que se haya creado una credencial nueva. Los Se arroja la excepción InvalidStateError, lo que indica que el usuario ya tiene un credencial válida que coincide con excludeCredentials.

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

Este JSON se puede usar para impedir que los autenticadores usen uno de los métodos que las credenciales se registren más de una vez. Cada "<id-*>" el valor debe Se completará con el identificador de la credencial que se excluirá.

Obtenga más información sobre excludeCredentials en el W3C recomendación