המדריך הזה עוסק בהשפעה של ההוצאה משימוש של קובצי 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.
השלבים הבאים
יש שלוש אפשרויות לבחירה:
- עורכים הערכת השפעה ומעדכנים את אפליקציית האינטרנט לפי הצורך. בשיטה הזו אנחנו בודקים אם תכונות שמצריכות שינויים באפליקציית האינטרנט בשימוש. ההוראות מופיעות בקטע הבא של מדריך זה.
- עוברים אל הספרייה של Google Identity Services (GIS). הם עוברים לגרסה האחרונה של מומלץ מאוד להשתמש בספריית כניסה נתמכת. כדי לעשות את זה צריך לעקוב אחרי ההוראות האלה.
- לא לעשות דבר. אפליקציית האינטרנט שלך תתעדכן באופן אוטומטי כאשר ספריית 'כניסה באמצעות חשבון 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.
- #fedcm-authz מופעלת, אם באתר נעשה שימוש במדיניות אבטחת תוכן
שחוסמת את
להגדיר את
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:
- פותחים את הדף 'פרטי כניסה' ב Google API Console
מוודאים שה-URI של האתר כלול ב- מקורות JavaScript מורשים. ה-URI כולל את הסכמה ו- רק שם מארח שמוגדר במלואו. לדוגמה,
https://www.example.com
.לחלופין, אפשר להחזיר פרטי כניסה באמצעות הפניה אוטומטית לנקודת קצה שאתם מארחים, ולא באמצעות קריאה חוזרת של JavaScript. במקרה כזה, לוודא שמזהי ה-URI להפניה אוטומטית כלולים במזהי URI מורשים להפניה אוטומטית. מזהי URI להפניה אוטומטית כוללים את הסכמה, שם מארח מלא ונתיב והם חייבים לפעול בהתאם לכללי אימות של URI להפניה אוטומטית. לדוגמה:
https://www.example.com/auth-receiver
.
בדיקה
אחרי שתבצעו את ההוראות בקטע 'הגדרה':
- סגירה של כל החלונות הפרטיים הקיימים ב-Chrome ופתיחת חלון פרטי חדש חלון. פעולה זו תגרום למחיקת התוכן וקובצי ה-Cookie שנשמרו במטמון.
- טוענים את דף הכניסה של המשתמש ומנסים להיכנס.
עליכם לפעול לפי ההוראות בקטעים האלה של המדריך כדי לזהות ולתקן בעיות ידועות:
מחפשים במסוף Google שגיאות או אזהרות שקשורות לכניסה באמצעות חשבון Google. לספרייה.
חוזרים על התהליך עד שלא תתרחש שגיאה ואפשר יהיה להיכנס לחשבון. כדי לוודא שהכניסה בוצעה בהצלחה, יש לאשר
BasicProfile.getEmail()
מחזיר את כתובת האימייל שלכםGoogleUser.isSignedIn()
בתאריךTrue
.
איתור הבקשה לספריית הכניסה באמצעות חשבון 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. במקרה כזה:
- מוסיפים את מדיניות ההרשאות של
allow="identity-credentials-get"
אל ב-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, הדפדפן מציג בקשה הסכמת המשתמש כאשר:
- משתמש נכנס לראשונה לאפליקציית אינטרנט באמצעות מופע דפדפן חדש, או
- קוראים לפונקציה
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.