עדכונים ב-FedCM ב-Chrome 143

תאריך פרסום: 12 בינואר 2026

ב-Chrome 143 אנחנו מציגים עדכונים ל-Federated Credential Management (FedCM) API כדי לשפר את הפרטיות, את חוויית המפתחים ואת יכולת הפעולה ההדדית של הדפדפן. השינויים האלה מבוססים על משוב מספקי זהויות (IdP), מצדדים מסתמכים (RP) ומקהילת האינטרנט.

העדכונים העיקריים הם:

תמיכה בתגובות JSON מובנות מנקודת הקצה של הצהרת הזהות

בעבר, נקודת הקצה של טענת הזהות של FedCM דרשה שהמאפיין token בתגובה שלה יהיה מחרוזת. הדבר הזה אילץ את המפתחים לבצע סריאליזציה של נתונים באופן ידני למחרוזת JSON בשרת ולנתח אותה בלקוח.

החל מגרסה Chrome 143, נקודת הקצה של הצהרת הזהות תומכת באובייקט JSON מובנה כערך של המאפיין token, לדוגמה:

{
  "token": {
    "access_token": "a1b2c3d4e5f6...",
    "user_info": {
      "email": "jane.doe@company.example",
      "given_name": "Jane",
      "family_name": "Doe"
    }
  }
}

השינוי הזה מבטל את הצורך בסדרות JSON ידניות ובניתוח שלהן, ומאפשר לספקי זהויות להחזיר מידע נוסף.

כדי לנסות את התכונה הזו, אפשר להיעזר בהדמו של FedCM או במדריך הטמעה של FedCM בצד של ספק הזהויות. במדריך הזה מוסבר איך בנויה התגובה של נקודת הקצה המעודכנת של הצהרת הזהות.

אימות מטא-נתונים של לקוחות

כדי להגן טוב יותר על פרטיות המשתמשים, ממשק FedCM מחזק את האימות של נקודות הקצה של ספקי הזהויות. השינוי הזה מונע מספק זהויות להתאים בין ספק שירות לבין מזהה ייחודי שמועבר כפרמטר של נתיב.

אם ההגדרה של FedCM משתמשת בנקודת הקצה client_metadata, צריך לכלול את accounts_endpoint ואת login_url בקובץ .well-known/web-identity. החל מגרסה Chrome 145, הדפדפן אוכף את הפרמטר accounts_endpoint בקובץ well-known.

{
  "accounts_endpoint": "/example-accounts",
  "login_url": "/example-login"
}

פרטים נוספים זמינים במדריך להטמעת FedCM.

עדכונים בעקביות של ה-API ובטיפול בשגיאות

ב-Chrome 143 הוספנו שני שינויים כדי לשפר את הבהירות והעקביות של FedCM API בדפדפנים, בהתאם למשוב מהסביבה העסקית באינטרנט.

העברה של הפרמטר nonce

החל מגרסה 145, Chrome מפסיק את התמיכה בפרמטר nonce ברמה העליונה. צריך להעביר את הפרמטר nonce באובייקט params בקריאה ל-navigator.credentials.get():

const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      // Don't pass nonce as a top-level parameter here
      configURL: "/fedcm.json",
      clientId: "123",
      params: {
     // Place nonce within the params object    
        nonce: "a-random-nonce"
      }
    }]
  }
});

מוודאים שהלוגיקה בצד השרת מצפה לפרמטר nonce באובייקט params ב נקודת הקצה של הצהרת הזהות.

שינוי השם של IdentityCredentialError.code לIdentityCredentialError.error

כדי למנוע התנגשויות בשמות עם המאפיין המובנה DOMException.code, השם IdentityCredentialError.code שונה ל-IdentityCredentialError.error. השינוי הזה ייכנס לתוקף החל מגרסה Chrome 145.

try {
  // FedCM API call
} catch (e) {
   // Renamed IdentityCredentialError.code to IdentityCredentialError.error:    
   console.log(e.error);
}

כדי להבטיח תאימות לאחור במהלך תקופת המעבר (Chrome 143 ו-144), צריך לבדוק את המאפיינים code ו-error בלוגיקה של הטיפול בשגיאות. כך תוכלו לוודא שהפתרון שלכם פועל בדפדפנים ישנים יותר בזמן שהמשתמשים מעדכנים לגרסאות חדשות יותר של Chrome:

 // In older browsers, the property might still be named 'code'
 // during the transition period
  const errorCode = e.error ?? e.code;
  if (errorCode) {
    // Handle specific error types
  } else {
    console.error("An unknown error occurred", e);
  }

מידע נוסף זמין בקטע החזרת תגובת שגיאה במסמכי התיעוד של FedCM.

שיתוף משוב

אנחנו ממשיכים לפתח ולשפר את FedCM, ולכן המשוב שלכם חשוב לנו. אם יש לכם משוב או שנתקלתם בבעיות:

מידע נוסף