כדי לאשר גישה ל-Google APIs באפליקציית האינטרנט באמצעות ספריית JavaScript של Google Identity Services (google.accounts.oauth2), קודם צריך:
- מקבלים מזהה לקוח ב-OAuth 2.0.
- מגדירים את מסך ההסכמה ל-OAuth ואת היקפי ההרשאות.
- טוענים את ספריית הלקוח.
- אפשר להגדיר Content Security Policy (CSP) ו-Cross-Origin Opener Policy (COOP).
איך מקבלים מזהה לקוח ב-Google API
כדי להפעיל את ההרשאה של חשבון Google באתר, קודם צריך להגדיר מזהה לקוח של Google API. כך עושים את זה:
- פותחים את הדף Clients במסוף Google Cloud.
- יוצרים או בוחרים פרויקט במסוף Cloud. כשיוצרים אפליקציות בסביבת ייצור, יכול להיות שיהיה צורך בכמה פרויקטים. במקרה כזה, צריך לחזור על שאר השלבים בקטע הזה בכל פרויקט שמנהלים.
- לוחצים על Create client ובשדה Application type בוחרים באפשרות Web application כדי ליצור מזהה לקוח חדש. כדי להשתמש במזהה לקוח קיים, בוחרים מזהה מסוג אפליקציית אינטרנט.
מוסיפים את ה-URI של האתר לשדה Authorized JavaScript origins (מקורות מורשים של JavaScript). ה-URI כולל רק את הסכימה ואת שם המארח המלא. לדוגמה,
https://www.example.com.אם אתם משתמשים במודל קוד ההרשאה עם
ux_mode: 'redirect'(או מחליפים קודי הרשאה בנקודת קצה לקצה העורפי), הוסיפו את כתובות ה-URI להפניה אוטומטית אל Authorized redirect URIs. מזהי ה-URI להפניה אוטומטית כוללים את הסכימה, שם המארח המלא והנתיב, והם חייבים לעמוד בכללי האימות של מזהי URI להפניה אוטומטית. לדוגמה,https://www.example.com/oauth2callback.
בסיום ההגדרה, חשוב לשמור את מזהה הלקוח שנוצר.
צריך להעביר את הערך הזה במאפיין client_id כשמפעילים את initCodeClient() או את initTokenClient(). (נוצר גם סוד לקוח, שצריך לשמור בסודיות ולהשתמש בו רק לפעולות של החלפת אסימונים בצד השרת).
הגדרת מסך ההסכמה ל-OAuth
כשאפליקציית האינטרנט מבקשת גישה לנתוני משתמשים באמצעות הי��פי הרשאות של OAuth 2.0, Google מציגה מסך הסכמה שבו מפורטים האפליקציה שמבקשת גישה, היקפי הנתונים שהיא מבקשת והתנאים שחלים.
- פותחים את הדף Branding בקטע Google Auth Platform במסוף Cloud.
- אם מופיעה בקשה, בוחרים את הפרויקט שהגדרתם.
- ממלאים את טופס המיתוג (שם האפליקציה, לוגו האפליקציה, כתובת אימייל לתמיכה, דומיינים מורשים, קישור לדף הבית של האפליקציה וקישור למדיניות הפרטיות) ולוחצים על Save.
- עוברים אל הדף "גישה לנתונים" כדי להגדיר את היקפי ההרשאות של Google API שהאפליקציה צריכה. כשיטה מומלצת, כדאי לבקש היקפי הרשאות באופן מצטבר, בזמן שבו נדרשת הגישה, ולא מראש.
- בודקים את סטטוס האימות. אם האפליקציה מבקשת היקפי הרשאות רגישים או מוגבלים, צריך לשלוח אותה לאימות. לפרטים נוספים, עיינו בדרישות לאימות OAuth.
Content Security Policy ו-COOP
אם באפליקציית האינטרנט שלכם נאכפת מדיניות אבטחת תוכן (CSP), צריך לאשר את המקורות הבאים של Google Identity Services:
script-src:https://accounts.google.com/gsi/clientframe-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 כדי שחלון הדו-שיח יוכל להעביר את תגובת ההרשאה בחזרה לדף.
השלבים הבאים
בשלב הבא, טוענים את ספריית הלקוח בדף האינטרנט כדי להתחיל את ההפעלה של לקוח ההרשאה.