منع إنشاء مفتاح مرور جديد إذا كان متوفّرًا حاليًا

لمنع إنشاء مفتاح مرور جديد في حال توفُّر مفتاح في مفتاح المرور نفسه يمكنك استخدام السمة الاختيارية excludeCredentials الخاصة بـ WebAuthn 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-*>" يجب بمعرّف بيانات الاعتماد المراد استبعادها.

مزيد من المعلومات حول "excludeCredentials" في W3C اقتراح