禁止创建新的通行密钥(如果已存在通行密钥)

当同一通行密钥已存在时,防止创建新的通行密钥 提供程序时,请使用 WebAuthn 的可选 excludeCredentials 属性 PublicKeyCredentialCreationOptions 字典。

excludeCredentials 属性是公钥描述符的数组 指定用户已有的资源这些信息由 依赖方的服务器 当它想要阻止 单个身份验证器。

excludeCredentials 数组具有以下属性:

  • type:描述要获得的公钥凭据类型的字符串 。默认值为“public-key”。
  • id:与现有公钥凭据匹配的 ArrayBuffer 标识符 (PublicKeyCredential.rawId)。此标识符在 PublicKeyCredential 实例的创建。

如果用户尝试创建客户端,系统将返回错误 平台身份验证器上已包含其中一个新凭据 凭据。如果身份验证器已包含 此类型的公钥凭据,身份验证器会以如下形式收集用户意见: 并向用户显示未创建新凭据的成功指标。一个 系统会抛出 InvalidStateError 异常,这表明用户已有 与 excludeCredentials 匹配的有效凭据。

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

此 JSON 可用于防止使用所提供的某个 避免多次注册凭据每个“<id-*>”值应该 要排除的凭据的标识符进行填充。

W3C 中详细了解 excludeCredentials 建议