כדי למנוע יצירה של מפתח גישה חדש אם כבר קיים מפתח גישה באותו מפתח גישה
ספק, צריך להשתמש במאפיין האופציונלי excludeCredentials של WebAuthn
PublicKeyCredentialCreationOptions
שלי.
המאפיין excludeCredentials הוא מערך תיאורים של מפתחות ציבוריים
שכבר קיימים למשתמש מסוים. מידע זה סופק על ידי
שרת relying party
כשהוא רוצה למנוע יצירה של פרטי כניסה חדשים למשתמש קיים בדומיין
מאמת אחד.
המערך 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
המלצה