ป้องกันการสร้างพาสคีย์ใหม่ หากมีอยู่แล้ว

เพื่อป้องกันการสร้างพาสคีย์ใหม่หากมีพาสคีย์เดียวกันอยู่แล้ว ให้ใช้พร็อพเพอร์ตี้ excludeCredentials ที่ไม่บังคับของ WebAuthn PublicKeyCredentialCreationOptions พจนานุกรม

พร็อพเพอร์ตี้ excludeCredentials เป็นอาร์เรย์ของคำอธิบายสำหรับคีย์สาธารณะ ที่มีอยู่แล้วสำหรับผู้ใช้รายหนึ่งๆ ข้อมูลนี้มาจาก ที่พึ่งพาเซิร์ฟเวอร์ เมื่อต้องการป้องกันไม่ให้มีการสร้างข้อมูลเข้าสู่ระบบใหม่สำหรับผู้ใช้เดิมใน Authenticator รายเดียว

อาร์เรย์ excludeCredentials มีแอตทริบิวต์ต่อไปนี้

  • type: สตริงที่อธิบายประเภทของข้อมูลเข้าสู่ระบบคีย์สาธารณะที่จะใช้ ที่สร้างขึ้น ค่าเริ่มต้นคือ "public-key"
  • รหัส: ArrayBuffer ที่ตรงกับข้อมูลเข้าสู่ระบบคีย์สาธารณะที่มีอยู่ ตัวระบุ (PublicKeyCredential.rawId) ตัวระบุนี้สร้างขึ้นระหว่าง การสร้างอินสแตนซ์ PublicKeyCredential

ไคลเอ็นต์จะแสดงข้อผิดพลาดหากผู้ใช้พยายามสร้าง ข้อมูลเข้าสู่ระบบใหม่ในตัวตรวจสอบสิทธิ์แพลตฟอร์มที่มี ข้อมูลเข้าสู่ระบบที่แสดงในพารามิเตอร์นี้ หาก Authenticator มีแอตทริบิวต์ ข้อมูลเข้าสู่ระบบคีย์สาธารณะประเภทนี้ Authenticator จะรวบรวมความยินยอมของผู้ใช้ตาม ตามปกติ และแสดงตัวบ่งชี้ความสำเร็จแก่ผู้ใช้โดยไม่ได้สร้างข้อมูลเข้าสู่ระบบใหม่ CANNOT TRANSLATE มีข้อยกเว้น InvalidStateError รายการ ซึ่งบ่งชี้ว่าผู้ใช้มี ตรงกับข้อมูลเข้าสู่ระบบที่ถูกต้องจาก excludeCredentials

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

JSON นี้สามารถใช้เพื่อป้องกัน Authenticator ที่มี ข้อมูลเข้าสู่ระบบจากการลงทะเบียนมากกว่า 1 ครั้ง แต่ละ "<id-*>" ควร ใส่ตัวระบุของข้อมูลเข้าสู่ระบบที่จะยกเว้น

เรียนรู้เพิ่มเติมเกี่ยวกับ excludeCredentials ใน W3C คำแนะนำ