צדדים מסתמכים (RP) צריכים לבצע את השלבים הבאים כדי להפעיל FedCM באתר שלהם:
- מוודאים שנקודות הקצה של FedCM מורשות באתר של ספק הזהויות.
- משתמשים ב-FedCM JavaScript API כדי להתחיל את אימות המשתמש.
- צריך לספק את המטא-נתונים שלהם (כמו כתובות URL של מדיניות הפרטיות והתנאים וההגבלות) לספק הזהויות (או למספר ספקי זהויות מ-Chrome 136).
- [אופציונלי] אפשר להתאים אישית את חוויית המשתמש על ידי בחירת מצב חוויית משתמש, הוספת רמזים להתחברות או רמזים לדומיין, העברת פרמטרים מותאמים אישית, בקשת מידע ספציפי על המשתמש, הוספת הודעת שגיאה מותאמת אישית או בחירת האופן שבו המשתמשים יאומתו מחדש.
שליחת קריאה ל-FedCM API ב-Relying Party
אחרי שההגדרות של ספק ה-IdP ונקודות הקצה שלו זמינות, צדדים מסתמכים יכולים להתקשר אל navigator.credentials.get()
כדי לבקש לאפשר למשתמש להיכנס לצד המסתמך באמצעות ספק ה-IdP.
לפני שמפעילים את ה-API, צריך לוודא ש-FedCM זמין בדפדפן של המשתמש. כדי לבדוק אם FedCM זמין, מוסיפים את הקוד הזה סביב ההטמעה של FedCM:
if ('IdentityCredential' in window) {
// If the feature is available, take action
} else {
// FedCM is not supported, use a different identity solution
}
כדי לאפשר למשתמש להיכנס ל-IdP ב-RP באמצעות FedCM, ה-RP יכול לקרוא ל-navigator.credentials.get()
. החל מ-Chrome 136, ספק שירות יכול לתמוך בכמה ספקי זהויות על ידי ציון מערך של כמה ספקי זהויות בקריאה אחת של navigator.credentials.get()
, לדוגמה:
const credential = await navigator.credentials.get({
identity: {
// Specify the IdP (or multiple IdPs, supported from Chrome 136) this Relying Party supports
providers: [
{
configURL: 'https://accounts.idp-1.example/config.json',
clientId: '********'
},
{
configURL: 'https://accounts.idp-2.example/config.json',
clientId: '********'
}]
}
},
);
const { token } = credential;
// Get the current IdP's configURL to identify which provider the user is signed in with
const currentIdpConfigUrl = credential.configURL;
if (currentIdpConfigUrl === 'https://idp1.example/foo.json') {
// handle the case where the user signed in with idp1
} else if (currentIdpConfigUrl === 'https://idp2.example/bar.json') {
// handle the case where the user signed in with idp2
}
כדי לנסות את התכונה של כמה ספקי IdP, צריך להיכנס באמצעות IdP1 ו-IdP2.
מאפיין הקשר
באמצעות המאפיין האופציונלי context
, ה-RP יכול לשנות את המחרוזת בממשק המשתמש של תיבת הדו-שיח של FedCM (לדוגמה, 'כניסה אל rp.example…', 'שימוש ב-idp.example…') כדי להתאים להקשרים מוגדרים מראש של אימות, למשל. המאפיין context
יכול לקבל את הערכים הבאים:
-
signin
(ברירת מחדל) signup
use

לדוגמה, אם מגדירים את context
ל-use
, תוצג ההודעה הבאה:

הדפדפן מטפל בתרחישי שימוש של הרשמה וכניסה בצורה שונה, בהתאם לקיום של approved_clients
בתגובה מנקודת הקצה של רשימת החשבונות.
אם המשתמש כבר נרשם לתוכנית לחלוקת הכנסות, בדפדפן לא יוצג טקסט גילוי נאות "כדי להמשיך עם...".
המאפיין providers
מקבל מערך של אובייקטים מסוג IdentityProvider
עם המאפיינים הבאים:
מאפיין הספקים
המאפיין providers
מקבל מערך של אובייקטים מסוג IdentityProvider
עם המאפיינים הבאים:
נכס | תיאור |
---|---|
configURL (חובה) |
נתיב מלא של קובץ התצורה של ספק הזהויות. |
clientId (חובה) |
מזהה הלקוח של ה-RP, שהונפק על ידי ה-IdP. |
ֶloginHint (אופציונלי) |
אם מציינים אחד מ-login_hints הערכים שמופיעים בנקודות הקצה של החשבונות, תיבת הדו-שיח של FedCM מציגה באופן סלקטיבי את החשבון שצוין. |
ֶdomainHint (אופציונלי) |
אם מציינים אחד מ-domain_hints הערכים שמופיעים בנקודות הקצה של החשבונות, תיבת הדו-שיח של FedCM מציגה באופן סלקטיבי את החשבון שצוין. |
ֶmode (אופציונלי) |
מחרוזת שמציינת את מצב ממשק המשתמש של FedCM. הערך יכול להיות אחד מהערכים הבאים:
הערה: הפרמטר mode נתמך מגרסה Chrome 132.
|
ֶfields (אופציונלי) |
מערך של מחרוזות שמציין את פרטי המשתמש שספק ה-IdP צריך לשתף עם ה-RP. אפשר לציין את השדות הבאים:
"username" ו-"tel" נתמכים מגרסה Chrome 141.
|
ֶparams (אופציונלי) |
אובייקט מותאם אישית שמאפשר לציין פרמטרים נוספים של מפתח/ערך:
הערה: params נתמך מגרסה Chrome 132.
|
מצב פעיל
FedCM תומך בהגדרות שונות של מצב חוויית המשתמש. מצב פסיבי הוא מצב ברירת המחדל, ומפתחים לא צריכים להגדיר אותו.
כדי להשתמש ב-FedCM במצב פעיל:
- בודקים את זמינות התכונה בדפדפן של המשתמש.
- מפעילים את ה-API באמצעות תנועת משתמש חולפת, כמו לחיצה על כפתור.
- מעבירים את הפרמטר
mode
לקריאה ל-API:
let supportsFedCmMode = false;
try {
navigator.credentials.get({
identity: Object.defineProperty(
// Check if this Chrome version supports the Mode API.
{}, 'mode', {
get: function () { supportsFedCmMode = true; }
}
)
});
} catch(e) {}
if (supportsFedCmMode) {
// The button mode is supported. Call the API with mode property:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/config.json',
clientId: '123',
}],
// The 'mode' value defines the UX mode of FedCM.
// - 'active': Must be initiated by user interaction (e.g., clicking a button).
// - 'passive': Can be initiated without direct user interaction.
mode: 'active'
}
});
}
כאן אפשר לנסות את המצב הפעיל.
סמל מותאם אישית במצב פעיל
במצב פעיל, ספקי הזהויות יכולים לכלול את סמל הלוגו הרשמי של ה-RP ישירות בתגובה של נקודת הקצה של מטא-נתוני הלקוח. השותף צריך לספק את נתוני המיתוג שלו מראש.
קריאה ל-FedCM מתוך iframe חוצה-מקורות
אפשר להפעיל את FedCM מתוך iframe חוצה מקור באמצעות מדיניות הרשאות identity-credentials-get
, אם מסגרת ההורה מאפשרת זאת. כדי לעשות זאת, מוסיפים את המאפיין allow="identity-credentials-get"
לתג ה-iframe באופן הבא:
<iframe src="https://fedcm-cross-origin-iframe.glitch.me" allow="identity-credentials-get"></iframe>
אופציונלי: אם הפריים הראשי רוצה להגביל את המקורות לקריאה ל-FedCM, הוא צריך לשלוח כותרת Permissions-Policy
עם רשימה של מקורות מורשים.
Permissions-Policy: identity-credentials-get=(self "https://fedcm-cross-origin-iframe.glitch.me")
מידע נוסף על אופן הפעולה של מדיניות ההרשאות זמין במאמר שליטה בתכונות של הדפדפן באמצעות מדיניות ההרשאות.
Login Hint API
בעזרת רמז הכניסה, ה-RP יכול להמליץ למשתמש עם איזה חשבון כדאי לו להיכנס. האפשרות הזו יכולה לעזור למשתמשים שרוצים לבצע אימות מחדש אבל לא בטוחים באיזה חשבון הם השתמשו בעבר.
ה-RP יכול להציג חשבון ספציפי על ידי הפעלת navigator.credentials.get()
עם המאפיין loginHint
ואחד מהערכים login_hints
שאוחזרו מנקודת הקצה של רשימת החשבונות, כמו בדוגמת הקוד הבאה:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/manifest.json',
clientId: '123',
// Accounts endpoint can specify a 'login_hints' array for an account.
// When RP specifies a 'exampleHint' value, only those accounts will be
// shown to the user whose 'login_hints' array contains the 'exampleHint'
// value
loginHint : 'exampleHint'
}]
}
});
אם אין חשבונות שתואמים ל-loginHint
, מוצגת תיבת דו-שיח של FedCM עם הנחיה להתחברות, שמאפשרת למשתמש להתחבר לחשבון בספק הזהויות שתואם לרמז שביקש ה-RP. כשהמשתמש מקיש על ההנחיה, נפתח חלון דו-שיח עם כתובת ה-URL להתחברות שצוינה בקובץ ההגדרות.
לאחר מכן, הקישור יצורף עם רמז הכניסה ופרמטרים של שאילתת רמז הדומיין.
Domain Hint API
דוחות RP יכולים להציג באופן סלקטיבי רק חשבונות שמשויכים לדומיין מסוים. האפשרות הזו יכולה להיות שימושית ל-RP שמוגבלים לדומיין ארגוני.
כדי להציג רק חשבונות של דומיין ספציפי, ספק ה-RP צריך לבצע קריאה ל-navigator.credentials.get()
עם המאפיין domainHint
ואחד מהערכים domain_hints
שאוחזרו מנקודת הקצה של רשימת החשבונות, כמו בדוגמת הקוד הבאה:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/manifest.json',
clientId: 'abc',
// Accounts endpoint can specify a 'domain_hints' array for an account.
// When RP specifies a '@domain.example' value, only those accounts will be
// shown to the user whose 'domain_hints' array contains the
// '@domain.example' value
domainHint : '@domain.example'
}]
}
});
אם אין חשבונות שתואמים ל-domainHint
, מוצגת תיבת דו-שיח של FedCM עם הנחיה להתחברות, שמאפשרת למשתמש להתחבר לחשבון בספק הזהויות שתואם לרמז שביקש ה-RP. כשהמשתמש מקיש על ההנחיה, נפתח חלון דו-שיח עם כתובת ה-URL להתחברות שצוינה בקובץ ההגדרות.
לאחר מכן, הקישור יצורף עם רמז הכניסה ופרמטרים של שאילתת רמז הדומיין.

domainHint
.פרטים נוספים זמינים בהדגמה.
פרמטרים מותאמים אישית
התכונה 'פרמטרים מותאמים אישית' מאפשרת לספק פרמטרים נוספים של ערכי מפתח לנקודת הקצה של הצהרת הזהות. בעזרת Parameters API, ספקי RP יכולים להעביר פרמטרים נוספים לספק ה-IdP כדי לבקש הרשאות למשאבים מעבר לכניסה בסיסית. העברת פרמטרים נוספים יכולה להיות שימושית בתרחישים הבאים:
- ספק ה-RP צריך לבקש באופן דינמי הרשאות נוספות שיש לספק ה-IdP, כמו כתובת לחיוב או גישה ליומן. המשתמש יכול לאשר את ההרשאות האלה באמצעות תהליך UX שנשלט על ידי ספק הזהויות ומופעל באמצעות התכונה 'המשך', ואז ספק הזהויות ישתף את המידע הזה.
כדי להשתמש ב-API, ספק ה-RP מוסיף פרמטרים לנכס params
כאובייקט בקריאה navigator.credentials.get()
:
let {token} = await navigator.credentials.get({
identity: {
providers: [{
clientId: '1234',
configURL: 'https://idp.example/fedcm.json',
// Key/value pairs that need to be passed from the
// RP to the IdP but that don't really play any role with
// the browser.
params: {
IDP_SPECIFIC_PARAM: '1',
foo: 'BAR'
}
},
}
});
הדפדפן יתרגם את זה אוטומטית לבקשת POST ל-IdP עם פרמטרים כאובייקט יחיד שעבר סריאליזציה בפורמט JSON עם קידוד כתובת URL:
// The assertion endpoint is drawn from the config file
POST /fedcm_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity
// params are translated into urlencoded version of `{"IDP_SPECIFIC_PARAM":"1","foo":"bar"}`
account_id=123&client_id=client1234¶ms=%22%7B%5C%22IDP_SPECIFIC_PARAM%5C%22%3A1%2C%5C%22foo%5C%22%3A%5C%22BAR%5C%22%7D%22.
אם ספק השירות צריך הרשאות נוספות, ספק הזהויות יכול לספק קישור להפניה אוטומטית. לדוגמה, ב-node.js:
if (rpRequestsPermissions) {
// Response with a URL if the RP requests additional permissions
return res.json({
continue_on: '/example-redirect',
});
}
שדות
ה-RP יכול לציין את פרטי המשתמשים שהוא צריך שה-IdP ישתף איתו. השילוב יכול לכלול שם, כתובת אימייל, שם משתמש, מספר טלפון ותמונת פרופיל. המידע המבוקש ייכלל בממשק המשתמש של חלון הדו-שיח של FedCM.
משתמשים שנרשמים יראו הודעה שמודיעה להם שאם הם יבחרו להירשם, idp.example
ישתף את המידע המבוקש עם rp.example
. אם התגובה מנקודת הקצה של החשבונות לא כוללת שדה שהסתמכות הצד השלישי ביקשה, טקסט הגילוי הנאות לא יכלול את השדה הזה. ספק הזהויות ילמד את כל השדות הנדרשים מנקודת הקצה של הצהרת הזהות ויחליט אם צריך לאסוף הרשאת משתמש נוספת כדי להמשיך.

כדי להשתמש בתכונה Fields, צריך להוסיף מערך fields
בקריאה navigator.credentials.get()
. השדות יכולים להכיל מאפיינים כמו name
, email
, tel
, username
או picture
. יכול להיות שבעתיד נוסיף עוד ערכים. בקשה עם fields
תיראה כך:
let { token } = await navigator.credentials.get({
identity: {
providers: [{
// RP requests the IdP to share only username and profile picture
fields: [ 'username', 'picture'],
clientId: '1234',
configURL: 'https://idp.example/fedcm.json',
},
}
});
הדפדפן יתרגם את הבקשה באופן אוטומטי לבקשת HTTP אל נקודת הקצה של הצהרת הזהות, שכוללת את הפרמטר fields
שצוין על ידי ספק הזהות, עם השדות שהדפדפן חשף למשתמש בפרמטר disclosure_shown_for
. לצורך תאימות לאחור, הדפדפן ישלח גם את disclosure_text_shown=true
אם טקסט הגילוי הנאות הוצג והשדות המבוקשים כוללים את כל שלושת השדות: 'name'
, 'email'
ו-'picture'
. החל מגרסה Chrome 141, הערך של disclosure_text_shown
לא מציין אם טקסט הגילוי הנאות הוצג בפועל למשתמש.
POST /id_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity
// The RP only requested to share email and picture. The browser will send `disclosure_text_shown=false`, as the 'name' field value is missing
account_id=123&client_id=client1234&disclosure_text_shown=false&fields=email,picture&disclosure_shown_for=email,picture
אם fields
הוא מערך ריק, סוכן המשתמש ידלג על ממשק המשתמש של הגילוי הנאות.

זה קורה גם אם התגובה מנקודת הקצה של החשבונות לא מכילה מזהה לקוח שתואם ל-RP ב-approved_clients
.
במקרה הזה, הערך של disclosure_text_shown
שנשלח אל נקודת הקצה של הצהרת הזהות הוא false בגוף ה-HTTP:
POST /id_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity
account_id=123&client_id=client1234&nonce=234234&disclosure_text_shown=false
הצגת הודעת שגיאה
לפעמים, ספק הזהויות לא יכול להנפיק אסימון מסיבות מוצדקות, למשל כשהלקוח לא מורשה או כשהשרת לא זמין באופן זמני. אם ספק ה-IdP מחזיר תגובה מסוג 'שגיאה', ספק ה-RP יכול לזהות אותה, ו-Chrome יכול להציג למשתמש ממשק משתמש בדפדפן עם פרטי השגיאה שסופקו על ידי ספק ה-IdP.

try {
const cred = await navigator.credentials.get({
identity: {
providers: [
{
configURL: 'https://idp.example/manifest.json',
clientId: '1234',
},
],
}
});
} catch (e) {
const code = e.code;
const url = e.url;
}
אימות מחדש אוטומטי של משתמשים אחרי האימות הראשוני
אימות מחדש אוטומטי באמצעות FedCM (בקיצור: auto-reauthn) מאפשר למשתמשים לבצע אימות מחדש באופן אוטומטי. התנאים הבאים צריכים להתקיים כדי שהמשתמש יאומת מחדש באופן אוטומטי:
- המשתמש כבר ביצע בעבר את האימות הראשוני באמצעות FedCM. "האימות הראשוני" כאן מתייחס למצב שבו המשתמש יוצר חשבון או נכנס לאתר של ספק השירות על ידי הקשה על הלחצן "המשך בתור…" בתיבת הדו-שיח לכניסה של FedCM בפעם הראשונה באותו מופע של הדפדפן.
- למשתמש יש רק חשבון אחד שחוזר. אם יש חשבונות חוזרים בכמה ספקי זהויות, המשתמש לא יאומת מחדש באופן אוטומטי.
חוויית המשתמש הברורה הזו הגיונית לפני שהמשתמש יוצר את החשבון המאוחד כדי למנוע מעקב (אחת המטרות העיקריות של FedCM), אבל היא מסורבלת שלא לצורך אחרי שהמשתמש כבר עבר אותה פעם אחת: אחרי שהמשתמש מעניק הרשאה לאפשר תקשורת בין ה-RP לבין ספק הזהויות, אין יתרון לפרטיות או לאבטחה באכיפה של אישור משתמש ברור נוסף למשהו שהוא כבר אישר בעבר.
באימות מחדש אוטומטי, ההתנהגות של הדפדפן משתנה בהתאם לאפשרות שמציינים עבור mediation
כשמפעילים את navigator.credentials.get()
.
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/fedcm.json',
clientId: '1234',
}],
},
mediation: 'optional', // this is the default
});
// `isAutoSelected` is `true` if auto-reauthn was performed.
const isAutoSelected = cred.isAutoSelected;
המאפיין mediation
הוא מאפיין ב-Credential Management API, והוא מתנהג באותו אופן כמו שהוא מתנהג ב-PasswordCredential וב-FederatedCredential. הוא נתמך באופן חלקי גם ב-PublicKeyCredential. המאפיין מקבל את ארבעת הערכים הבאים:
-
'optional'
(ברירת מחדל): אימות מחדש אוטומטי אם אפשר, נדרשת תיווך אם לא. מומלץ לבחור באפשרות הזו בדף הכניסה. -
'required'
: תמיד נדרשת התערבות כדי להמשיך, למשל לחיצה על הלחצן 'המשך' בממשק המשתמש. בוחרים באפשרות הזו אם המשתמשים צפויים לתת הרשאה במפורש בכל פעם שהם צריכים לעבור אימות. -
'silent'
: אימות מחדש אוטומטי אם אפשר, או כשל שקט בלי לדרוש תהליך בחירת רשת אם אי אפשר. מומלץ לבחור באפשרות הזו בדפים שאינם דף הכניסה הייעודי, אבל שבהם רוצים שהמשתמשים יישארו מחוברים – למשל, דף פריט באתר משלוחים או דף כתבה באתר חדשות. -
'conditional'
: משמש ל-WebAuthn ולא זמין ל-FedCM כרגע.
בשיחה הזו, אימות מחדש אוטומטי מתבצע בתנאים הבאים:
- אפשר להשתמש ב-FedCM. לדוגמה, המשתמש לא השבית את FedCM באופן גלובלי או עבור ה-RP בהגדרות.
- המשתמש השתמש רק בחשבון אחד עם FedCM API כדי להיכנס לאתר בדפדפן הזה.
- המשתמש מחובר לספק הזהות באמצעות החשבון הזה.
- האימות מחדש האוטומטי לא התבצע ב-10 הדקות האחרונות.
- ספק הזהות לא התקשר אל
navigator.credentials.preventSilentAccess()
אחרי הכניסה הקודמת.
כשמתקיימים התנאים האלה, מתחיל ניסיון לאימות מחדש של המשתמש באופן אוטומטי ברגע שמפעילים את FedCM navigator.credentials.get()
.
כש-mediation: optional
, יכול להיות שהאימות מחדש האוטומטי לא יהיה זמין בגלל סיבות שרק הדפדפן יודע עליהן. ספק השירות יכול לבדוק אם האימות מחדש האוטומטי בוצע על ידי בדיקת המאפיין isAutoSelected
.
המידע הזה עוזר להעריך את הביצועים של ה-API ולשפר את חוויית המשתמש בהתאם.
בנוסף, כשהאפשרות הזו לא זמינה, יכול להיות שהמשתמש יתבקש להיכנס באמצעות תהליך מפורש של תיווך משתמש, שהוא תהליך עם mediation: required
.
החלת בחירת רשת באמצעות preventSilentAccess()
אימות מחדש אוטומטי של משתמשים מיד אחרי שהם יוצאים מהחשבון לא יספק חוויית משתמש טובה. לכן, ב-FedCM יש תקופת שקט של 10 דקות אחרי אימות מחדש אוטומטי, כדי למנוע את ההתנהגות הזו. המשמעות היא שהאימות מחדש האוטומטי מתבצע פעם אחת לכל היותר בכל 10 דקות, אלא אם המשתמש נכנס שוב לחשבון תוך 10 דקות. ספק הזהויות צריך לקרוא לפונקציה navigator.credentials.preventSilentAccess()
כדי לבקש באופן מפורש מהדפדפן להשבית את האימות מחדש האוטומטי כשמשתמש יוצא מהחשבון בספק הזהויות באופן מפורש, למשל על ידי לחיצה על לחצן יציאה מהחשבון.
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
המשתמשים יכולים לבטל את ההסכמה לאימות מחדש אוטומטי בהגדרות
המשתמשים יכולים להשבית את האימות מחדש האוטומטי בתפריט ההגדרות:
- ב-Chrome במחשב, עוברים אל
chrome://password-manager/settings
> כניסה אוטומטית. - ב-Chrome ל-Android, פותחים את ההגדרות > מנהל הסיסמאות > מקישים על סמל גלגל השיניים בפינה השמאלית העליונה > כניסה אוטומטית.
המשתמשים יכולים להשבית את המתג כדי לבטל את ההתנהגות של אימות מחדש אוטומטי לחלוטין. ההגדרה הזו נשמרת ומסונכרנת בין מכשירים, אם המשתמש מחובר לחשבון Google במופע Chrome והסנכרון מופעל.
ניתוק ספק הזהויות מספק השירות
אם משתמש נכנס בעבר ל-RP באמצעות ספק הזהויות דרך FedCM, הדפדפן שומר את הקשר הזה באופן מקומי כרשימה של חשבונות מקושרים. ספק ה-RP יכול ליזום ניתוק על ידי הפעלת הפונקציה IdentityCredential.disconnect()
. אפשר להפעיל את הפונקציה הזו מתוך מסגרת RP ברמה העליונה. כדי לנתק את ספק הזהויות, על ספק הזהויות להעביר configURL
, את clientId
שבו הוא משתמש במסגרת ספק הזהויות וaccountHint
. רמז לגבי החשבון יכול להיות מחרוזת שרירותית, כל עוד נקודת הקצה לניתוק יכולה לזהות את החשבון. לדוגמה, כתובת אימייל או מזהה משתמש שלא בהכרח תואמים למזהה החשבון שסופק על ידי נקודת הקצה של רשימת החשבונות:
// Disconnect an IdP account 'account456' from the RP 'https://idp.com/'. This is invoked on the RP domain.
IdentityCredential.disconnect({
configURL: 'https://idp.com/config.json',
clientId: 'rp123',
accountHint: 'account456'
});
הפונקציה IdentityCredential.disconnect()
מחזירה Promise
. יכול להיות שההבטחה הזו תזרוק חריגה מהסיבות הבאות:
- המשתמש לא נכנס לאתר (Relying Party) באמצעות ספק הזהויות דרך FedCM.
- הפעלת ה-API מתבצעת מתוך iframe ללא מדיניות הרשאות של FedCM.
- הערך של configURL לא תקין או שנקודת הקצה של הניתוק חסרה.
- בדיקת Content Security Policy (CSP) נכשלת.
- יש בקשת ניתוק בהמתנה.
- המשתמש השבית את FedCM בהגדרות הדפדפן.
כשנקודת הקצה (endpoint) של ה-IdP לניתוק מחזירה תשובה, ה-RP וה-IdP מתנתקים בדפדפן וההבטחה מתקיימת. המזהים של החשבונות המנותקים מפורטים בתשובה מנקודת הקצה לניתוק.