如果已有密碼金鑰,系統應禁止建立新的密碼金鑰

避免在相同的密碼金鑰中,再建立新的密碼金鑰 供應商,請使用 WebAuthn 的選用 excludeCredentials 屬性 PublicKeyCredentialCreationOptions 字典中。

excludeCredentials 屬性是公開金鑰的描述元陣列 建立的帳戶這項資訊由 依賴方的伺服器 要求防止在 和單一驗證器

excludeCredentials 陣列包含下列屬性:

  • type:這個字串會說明要產生的公開金鑰憑證類型 。預設值為「public-key」。
  • id:與現有公開金鑰憑證相符的 ArrayBuffer 識別碼 (PublicKeyCredential.rawId)。這個 ID 是在 建立 PublicKeyCredential 執行個體的建立程序。

如果使用者嘗試建立用戶端 已包含其中一個 列出的憑證如果驗證器已包含 此類型的公開金鑰憑證,驗證器會將使用者同意聲明收集為 ,並向使用者顯示成功指標,表示沒有建立新憑證。一個 擲回 InvalidStateError 例外狀況,表示使用者已 與 excludeCredentials 相符的有效憑證。

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

此 JSON 可用來防範驗證者, 以便重複使用每個「<id-*>」值應該 填入要排除的憑證 ID。

進一步瞭解 W3C 中的 excludeCredentials 建議