הגדרה

כדי לאשר גישה ל-Google APIs באפליקציית האינטרנט באמצעות ספריית JavaScript של Google Identity Services ‏ (google.accounts.oauth2), קודם צריך:

  1. מקבלים מזהה לקוח ב-OAuth 2.0.
  2. מגדירים את מסך ההסכמה ל-OAuth ואת היקפי ההרשאות.
  3. טוענים את ספריית הלקוח.
  4. אפשר להגדיר Content Security Policy‏ (CSP) ו-Cross-Origin Opener Policy‏ (COOP).

איך מקבלים מזהה לקוח ב-Google API

כדי להפעיל את ההרשאה של חשבון Google באתר, קודם צריך להגדיר מזהה לקוח של Google API. כך עושים את זה:

  1. פותחים את הדף Clients במסוף Google Cloud.
  2. יוצרים או בוחרים פרויקט במסוף Cloud. כשיוצרים אפליקציות בסביבת ייצור, יכול להיות שיהיה צורך בכמה פרויקטים. במקרה כזה, צריך לחזור על שאר השלבים בקטע הזה בכל פרויקט שמנהלים.
  3. לוחצים על Create client ובשדה Application type בוחרים באפשרות Web application כדי ליצור מזהה לקוח חדש. כדי להשתמש במזהה לקוח קיים, בוחרים מזהה מסוג אפליקציית אינטרנט.
  4. מוסיפים את ה-URI של האתר לשדה Authorized JavaScript origins (מקורות מורשים של JavaScript). ה-URI כולל רק את הסכימה ואת שם המארח המלא. לדוגמה, https://www.example.com.

  5. אם אתם משתמשים במודל קוד ההרשאה עם ux_mode: 'redirect' (או מחליפים קודי הרשאה בנקודת קצה לקצה העורפי), הוסיפו את כתובות ה-URI להפניה אוטומטית אל Authorized redirect URIs. מזהי ה-URI להפניה אוטומטית כוללים את הסכימה, שם המארח המלא והנתיב, והם חייבים לעמוד בכללי האימות של מזהי URI להפניה אוטומטית. לדוגמה, https://www.example.com/oauth2callback.

בסיום ההגדרה, חשוב לשמור את מזהה הלקוח שנוצר. צריך להעביר את הערך הזה במאפיין client_id כשמפעילים את initCodeClient() או את initTokenClient(). (נוצר גם סוד לקוח, שצריך לשמור בסודיות ולהשתמש בו רק לפעולות של החלפת אסימונים בצד השרת).

כשאפליקציית האינטרנט מבקשת גישה לנתוני משתמשים באמצעות הי��פי הרשאות של OAuth 2.0,‏ Google מציגה מסך הסכמה שבו מפורטים האפליקציה שמבקשת גישה, היקפי הנתונים שהיא מבקשת והתנאים שחלים.

  1. פותחים את הדף Branding בקטע Google Auth Platform במסוף Cloud.
  2. אם מופיעה בקשה, בוחרים את הפרויקט שהגדרתם.
  3. ממלאים את טופס המיתוג (שם האפליקציה, לוגו האפליקציה, כתובת אימייל לתמיכה, דומיינים מורשים, קישור לדף הבית של האפליקציה וקישור למדיניות הפרטיות) ולוחצים על Save.
  4. עוברים אל הדף "גישה לנתונים" כדי להגדיר את היקפי ההרשאות של Google API שהאפליקציה צריכה. כשיטה מומלצת, כדאי לבקש היקפי הרשאות באופן מצטבר, בזמן שבו נדרשת הגישה, ולא מראש.
  5. בודקים את סטטוס האימות. אם האפליקציה מבקשת היקפי הרשאות רגישים או מוגבלים, צריך לשלוח אותה לאימות. לפרטים נוספים, עיינו בדרישות לאימות OAuth.

‫Content Security Policy ו-COOP

אם באפליקציית האינטרנט שלכם נאכפת מדיניות אבטחת תוכן (CSP), צריך לאשר את המקורות הבאים של Google Identity Services:

  • script-src: https://accounts.google.com/gsi/client
  • frame-src: ‏https://accounts.google.com/gsi/
  • connect-src: https://accounts.google.com/gsi/

בתהליכי הרשאה בחלונות קופצים (initTokenClient או initCodeClient עם ux_mode: 'popup'), מגדירים את כותרת תגובת ה-HTTP של Cross-Origin-Opener-Policy (COOP) לערך same-origin-allow-popups כדי שחלון הדו-שיח יוכל להעביר את תגובת ההרשאה בחזרה לדף.

השלבים הבאים

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