כניסה באמצעות חשבון Google באמצעות ממשקי API של FedCM

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

סטטוס הספרייה

לא תהיה לאפליקציות אינטרנט חדשות אפשרות להשתמש בפלטפורמת הכניסה באמצעות חשבון Google שהוצאה משימוש בעוד שאפליקציות שמשתמשות בספרייה ימשיכו לפעול עד להודעה חדשה. א' תאריך השקיעה האחרון (השבתה) של הספרייה לא נקבע. מידע נוסף זמין במאמר הפסקת תמיכה וסגירה.

חסימת קובצי cookie של צד שלישי בארגז החול לפרטיות ב-Chrome משפיעה על אפליקציות אינטרנט שמבוססים על הספרייה של פלטפורמת הכניסה באמצעות חשבון Google. כדי לשמר את ההתנהגות הקיימת, ללא צורך בשימוש בקובצי Cookie של צד שלישי, עדכון בתאימות לאחור מוסיף לספרייה הזו ממשקי API של FedCM. רוב השינויים מתבצעים בצורה חלקה, עדכון שמציג הבדלים בבקשות לקבלת הסכמה מהמשתמשים וב-iframe permissions-policy ו-Content Security Policy (CSP). השינויים האלה עשוי להשפיע על אפליקציית האינטרנט שלך ולדרוש שינויים בקוד האפליקציה ובאתר הגדרה אישית.

במהלך תקופת המעבר, אפשרות הגדרה קובעת אם אנחנו משתמשים בממשקי API של FedCM במהלך הכניסה של משתמשים.

ציר הזמן

תאריך העדכון האחרון: יולי 2024

אלו הם התאריכים והשינויים שמשפיעים על התנהגות הכניסה של משתמשים:

  • מרץ 2023 הוצאה משימוש של התמיכה בפלטפורמה לכניסה באמצעות חשבון Google לספרייה.
  • ינואר 2024 דפדפן Chrome חוסם 1% מקובצי ה-Cookie של צד שלישי, מה שקשור לכניסה באמצעות חשבון Google ספריית הפלטפורמה קיבלה חריג זמני מקובצי cookie של צד שלישי חסימה באמצעות תקופת ניסיון של הוצאה משימוש.
  • תקופת המעבר מיולי 2024 מתחילה, והספרייה של הפלטפורמה לכניסה באמצעות חשבון Google מתחילה נוספה תמיכה בממשקי API של FedCM. כברירת מחדל, Google שולטת באחוז מבקשות הכניסה של המשתמשים באמצעות FedCM בתקופה הזו. יכול להיות שאפליקציות אינטרנט לשנות באופן מפורש את ההתנהגות הזאת באמצעות הפרמטר use_fedcm.
  • אימוץ חובה (התאריך שייקבע) של ממשקי API של FedCM על ידי Google ספריית פלטפורמה לכניסה, שאחריה המערכת מתעלמת מהפרמטר use_fedcm, וכל בקשות הכניסה של המשתמשים משתמשות ב-FedCM.

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

השלבים הבאים

יש שלוש אפשרויות לבחירה:

  1. עורכים הערכת השפעה ומעדכנים את אפליקציית האינטרנט לפי הצורך. בשיטה הזו אנחנו בודקים אם תכונות שמצריכות שינויים באפליקציית האינטרנט בשימוש. ההוראות מופיעות בקטע הבא של מדריך זה.
  2. עוברים אל הספרייה של Google Identity Services (GIS). הם עוברים לגרסה האחרונה של מומלץ מאוד להשתמש בספריית כניסה נתמכת. כדי לעשות את זה צריך לעקוב אחרי ההוראות האלה.
  3. לא לעשות דבר. אפליקציית האינטרנט שלך תתעדכן באופן אוטומטי כאשר ספריית 'כניסה באמצעות חשבון Google' עוברת לממשקי API של FedCM לכניסת משתמשים. כאן עובדים לפחות, אך יש סיכון מסוים שמשתמשים לא יוכלו להיכנס אל אפליקציית האינטרנט שלך.

ביצוע הערכת השפעה

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

הגדרה

ממשקי ה-API של הדפדפן והגרסה העדכנית של ספריית הפלטפורמה של 'כניסה באמצעות חשבון Google' הם הדרושה לשימוש ב-FedCM במהלך הכניסה של משתמש.

לפני שממשיכים:

  • מעדכנים לגרסה האחרונה של Chrome למחשב. Chrome ל-Android נדרשת גרסה M128 ואילך ולא ניתן לבדוק אותה באמצעות גרסאות קודמות.
  • פותחים את chrome://flags ומגדירים את התכונות הבאות לערכים הבאים:

    • #fedcm-authz מופעלת, אם באתר נעשה שימוש במדיניות אבטחת תוכן שחוסמת את https://accounts.google.com/gsi/ottoken.
    • #tracking-protection-3pcd מופעל
    • הושבת #third-party-cookie-deprecation-trial
    • #tpcd-metadata-grants מושבת
    • #tpcd-heuristics-grants מושבת

    ולהפעיל מחדש את Chrome.

  • להגדיר את use_fedcm לערך true כשמפעילים את הפלטפורמה של כניסה באמצעות חשבון Google בספרייה שבאפליקציית האינטרנט. בדרך כלל, האתחול נראה כך:

    • gapi.client.init({use_fedcm: true}), או
    • gapi.auth2.init({use_fedcm: true}), או
    • gapi.auth2.authorize({use_fedcm: true}).
  • ביטול התוקף של גרסאות שנשמרו במטמון של ספריית הפלטפורמה של 'כניסה באמצעות חשבון Google'. בדרך כלל אין צורך לבצע את השלב הזה, כי הגרסה האחרונה של הספרייה יורדים ישירות לדפדפן על ידי כולל api.js, client.js, או platform.js בתג <script src> (הבקשה יכולה להשתמש בכל אחד מהפרטים הבאים שמות חבילה עבור הספרייה).

  • מאשרים את הגדרות OAuth עבור המזהה של לקוח OAuth:

    1. פותחים את הדף 'פרטי כניסה' ב Google API Console
    2. מוודאים שה-URI של האתר כלול ב- מקורות JavaScript מורשים. ה-URI כולל את הסכמה ו- רק שם מארח שמוגדר במלואו. לדוגמה, https://www.example.com.

    3. לחלופין, אפשר להחזיר פרטי כניסה באמצעות הפניה אוטומטית לנקודת קצה שאתם מארחים, ולא באמצעות קריאה חוזרת של JavaScript. במקרה כזה, לוודא שמזהי ה-URI להפניה אוטומטית כלולים במזהי URI מורשים להפניה אוטומטית. מזהי URI להפניה אוטומטית כוללים את הסכמה, שם מארח מלא ונתיב והם חייבים לפעול בהתאם לכללי אימות של URI להפניה אוטומטית. לדוגמה: https://www.example.com/auth-receiver.

בדיקה

אחרי שתבצעו את ההוראות בקטע 'הגדרה':

איתור הבקשה לספריית הכניסה באמצעות חשבון Google

בודקים אם השינויים ב-permissions-policy וב-Content Security Policy חלים. נדרש על ידי בדיקת הבקשה לספרייה של הפלטפורמה 'כניסה באמצעות חשבון Google'. כדי לעשות זאת, צריך לאתר את הבקשה לפי השם והמקור של הספרייה:

  • ב-Chrome, פותחים את החלונית רשת של כלי הפיתוח וטוענים מחדש את הדף.
  • משתמשים בערכים שבעמודות Domain ו-Name (שם) כדי לאתר את הספרייה. בקשה:
    • הדומיין הוא apis.google.com ו
    • השם הוא api.js, client.js או platform.js. המוצר הספציפי הערך של 'שם' תלוי בחבילת הספרייה שהמסמך ביקש.

לדוגמה, מסננים לפי apis.google.com בעמודה דומיין ו- platform.js בעמודה Name.

בדיקת מדיניות ההרשאות ב-iframe

יכול להיות שהאתר שלכם משתמש בספרייה של הפלטפורמה ל'כניסה באמצעות חשבון Google' בתוך iframe. אם כן, נדרש עדכון.

אחרי שמבצעים את ההוראות לאיתור הבקשה לספריית הכניסה באמצעות חשבון Google הוראות, יש לבחור את הבקשה לספרייה לכניסה באמצעות חשבון Google בכלי הפיתוח החלונית רשת ומאתרים את הכותרת Sec-Fetch-Site בקטע בקטע Request Headers (בקשת כותרות) בכרטיסייה Headers (כותרות). אם ערך הכותרת היא:

  • same-siteאו same-origin, אז לא חלים כללי מדיניות בין מקורות ולא חלים נדרשים שינויים.
  • ייתכן שיהיה צורך לבצע שינויים ב-cross-origin אם משתמשים ב-iframe.

כדי לבדוק אם קיים iframe:

  • בוחרים בחלונית רכיבים בכלי הפיתוח ל-Chrome.
  • כדי למצוא iframe במסמך, מקישים על Ctrl-F.

אם נמצא iframe, יש לבדוק את המסמך כדי לחפש קריאות ל-gapi.auth2 פונקציות או הוראות script src שטוענות את ספריית הכניסה באמצעות חשבון Google ב-iframe. במקרה כזה:

חוזרים על התהליך לכל iframe במסמך. אפשר להגדיר כ-iframes מקוננים, כך חשוב להוסיף את הוראת ההרשאה לכל מסגרות ה-iframe שמסביב.

בדיקה של Content Security Policy

אם נעשה באתר שימוש ב-Content Security Policy, יכול להיות שיהיה צורך לעדכן את ה-CSP כך: לאפשר שימוש בספריית כניסה באמצעות חשבון Google.

אחרי שמבצעים את ההוראות לאיתור הבקשה לספריית הכניסה באמצעות חשבון Google הוראות, יש לבחור את הבקשה לספרייה לכניסה באמצעות חשבון Google בכלי הפיתוח החלונית רשת ומאתרים את הכותרת Content-Security-Policy בקטע הקטע Response Headers (כותרות תגובה) בכרטיסייה Headers (כותרות של תגובות).

אם הכותרת לא נמצאת, לא צריך לבצע שינויים. אחרת, יש לבדוק אם הוראות ה-CSP האלה מוגדרות בכותרת ה-CSP ומעדכנים אותן כך:

  • מתבצעת הוספה של https://apis.google.com/js/, https://accounts.google.com/gsi/, ו-https://acounts.google.com/o/fedcm/ בכל connect-src, default-src או frame-src הוראות.

  • מתבצעת הוספה של אל https://apis.google.com/js/bundle-name.js אל script-src של Google. מחליפים את bundle-name.js ב-api.js, ב-client.js או platform.jsעל סמך החבילה של הספרייה, בקשות המסמך.

בדיקת שינויים בהנחיות של משתמשים

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

תמונה של תיבת הדו-שיח של FedCM

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

הפעלת משתמשים

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

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

כיום, אם המשתמש נכנס לאתר שלך בעבר, אתה יכול פרטי הכניסה של המשתמש בעת אתחול ספריית הכניסה באמצעות חשבון Google. באמצעות gapi.auth2.init, ללא אינטראקציות נוספות של המשתמש.

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

הבעת הסכמה ל-FedCM והתקשרות אל GoogleAuth.signIn בפעם הבאה משתמש מבקר באתר שלך, gapi.auth2.init יכול לקבל את פרטי הכניסה של המשתמש מידע במהלך האתחול ללא אינטראקציה של המשתמש.

תרחישים נפוצים לדוגמה

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

  • שילוב של כניסה באמצעות חשבון Google באפליקציית האינטרנט

    demo, הלחצן <div> וכיתת מעבדים את הלחצן, וגם למשתמשים שכבר מחוברים, האירוע onload בדף מחזיר משתמש פרטי הכניסה. נדרשת אינטראקציה של המשתמש כדי להיכנס לחשבון וליצור חשבון חדש סשן.

    אתחול הספרייה מתבצע על ידי המחלקה g-signin2, שמתקשרת gapi.load וגם gapi.auth2.init

    תנועת משתמש, אירוע onclick של רכיב <div>, מתקשרת אל auth2.signIn במהלך הכניסה או auth2.signOut בזמן היציאה.

  • יצירה של לחצן כניסה בהתאמה אישית באמצעות חשבון Google

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

    אתחול הספרייה מתבצע באמצעות אירוע onload של platform.js והלחצן מוצגים על ידי gapi.signin2.render.

    תנועת משתמש, לחיצה על לחצן הכניסה, שולחת קריאה אל auth2.signIn.

    בהדגמה השנייה, הרכיב <div>, סגנונות CSS וגרפיקה מותאמת אישית הם משמש לשליטה במראה של לחצן הכניסה. האינטראקציה של המשתמש היא שנדרש כדי להיכנס וליצור סשן חדש.

    אתחול הספרייה מתבצע לאחר טעינת המסמך באמצעות פונקציית התחלה. שקורא ל-gapi.load, gapi.auth2.init ול- gapi.auth2.attachClickHandler.

    תנועת משתמש, אירוע onclick של רכיב <div>, מתקשרת אל auth2.signIn משתמש ב-auth2.attachClickHandler במהלך הכניסה או ב-auth2.signOut מופעל לצאת ממנו.

  • מעקב אחרי מצב הסשן של המשתמשים

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

    אתחול הספרייה מתבצע על ידי קריאה ישירה אל gapi.load, gapi.auth2.init, ו-gapi.auth2.attachClickHandler() לאחר מכן platform.js נטען באמצעות script src.

    תנועת משתמש, אירוע onclick של רכיב <div>, מתקשרת אל auth2.signIn משתמש ב-auth2.attachClickHandler במהלך הכניסה או ב-auth2.signOut מופעל לצאת ממנו.

  • בקשת הרשאות נוספות

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

    אתחול הספרייה מתבצע על ידי האירוע onload עבור platform.js בספרייה באמצעות שיחה ל-gapi.signin2.render.

    תנועת משתמש, לחיצה על רכיב <button>, מפעילה בקשה עבור עוד היקפי הרשאות OAuth 2.0 שמשתמשים ב-googleUser.grant או ב-auth2.signOut ביציאה.

  • שילוב של כניסה באמצעות חשבון Google באמצעות מאזינים

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

    אתחול הספרייה מתבצע לאחר טעינת המסמך באמצעות פונקציית התחלה. שקורא ל-gapi.load, gapi.auth2.init ול- gapi.auth2.attachClickHandler. הבא, auth2.isSignedIn.listen ו auth2.currentUser.listen משמשים להגדרת התראה על שינויים ב- במצב הסשן. לסיום, נשלחת אל auth2.SignIn קריאה להחזיר פרטי כניסה עבור משתמשים שמחוברים לחשבון.

    תנועת משתמש, אירוע onclick של רכיב <div>, מתקשרת אל auth2.signIn משתמש ב-auth2.attachClickHandler במהלך הכניסה או ב-auth2.signOut מופעל לצאת ממנו.

  • כניסה באמצעות חשבון Google לאפליקציות בצד השרת

    demo, תנועת משתמש משמשת לבקשת קוד אימות OAuth 2.0 וקריאה חוזרת של JS מבצעת קריאת AJAX כדי לשלוח את התגובה לקצה העורפי לאימות.

    אתחול הספרייה בוצע באמצעות אירוע onload עבור platform.js שמשתמשת בפונקציה 'התחלה' כדי לקרוא ל-gapi.load gapi.auth2.init

    תנועת משתמש, לחיצה על רכיב <button>, מפעילה בקשה עבור קוד הרשאה באמצעות הפקודה auth2.grantOfflineAccess.

  • כניסה יחידה (SSO) בפלטפורמות שונות

    ב-FedCM נדרשת הסכמה לכל מופע של דפדפן, גם אם משתמשי Android כבר נכנסו, נדרשת הסכמה חד-פעמית.

ניהול תקופת המעבר

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

אם הם מביעים הסכמה, הם שולחים אותו דרך תהליך הכניסה ל-FedCM, ובמקביל בוחרים כדי לבטל את ההסכמה שולח את המשתמשים באמצעות תהליך הכניסה הקיים. מה קורה? נקבע באמצעות הפרמטר use_fedcm.

הבעת הסכמה

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

ביטול הצטרפות

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

לאחר שמתרחשת הטמעת החובה, המערכת מתעלמת מכל ההגדרות של use_fedcm הספרייה בפלטפורמה של 'כניסה באמצעות חשבון Google'.

עזרה

ניתן לחפש או לשאול שאלות ב-StackOverflow באמצעות התג google-signin.