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