סקירה כללית
קישור יעיל באמצעות כניסה מבוססת-OAuth עם חשבון Google מוסיף כניסה באמצעות חשבון Google על גבי קישור OAuth. האפשרות הזו מספקת חוויית קישור חלקה למשתמשי Google, והיא גם מאפשרת יצירת חשבון, כך שהמשתמש יכול ליצור חשבון חדש בשירות שלכם באמצעות חשבון Google שלו.
כדי לקשר חשבונות באמצעות OAuth ו'כניסה באמצעות חשבון Google', צריך לבצע את השלבים הכלליים הבאים:
- קודם צריך לבקש מהמשתמש לתת הסכמה לגישה לפרופיל שלו ב-Google.
- משתמשים במידע בפרופיל כדי לבדוק אם חשבון המשתמש קיים.
- למשתמשים קיימים, מקשרים את החשבונות.
- אם לא מצאתם התאמה למשתמש Google במערכת האימות שלכם, צריך לאמת את אסימון הזהות שהתקבל מ-Google. לאחר מכן תוכלו ליצור משתמש על סמך פרטי הפרופיל שכלולים באסימון המזהה.
איור 1. קישור חשבון בטלפון של משתמש באמצעות קישור פשוט
הדרישות לקישור פשוט
- מטמיעים את תהליך הקישור הבסיסי לחשבון באמצעות OAuth. השירות שלכם צריך לתמוך בנקודות קצה של הרשאה והחלפת אסימונים שתואמות ל-OAuth 2.0.
- נקודת הקצה של החלפת האסימונים חייבת לתמוך בהצהרות JSON Web Token (JWT) וליישם את הכוונות
check,createו-get.
הטמעת שרת OAuth
נקודת הקצה של החלפת הטוקנים צריכה לתמוך בכוונות check, create ו-get.
בצע את השלבים הבאים כדי להשלים את תהליך קישור החשבון וללמוד מתי נעשה שימוש בכוונה מסוימת:
- האם למשתמש יש חשבון במערכת האימות שלכם? (המשתמש מחליט על ידי בחירה באפשרות 'כן' או 'לא')
- כן : המשתמש משתמש בכתובת האימייל שמשויכת לחשבון Google שלו כדי להיכנס לפלטפורמה שלכם. (המשתמש מחליט על ידי בחירה באפשרות 'כן' או 'לא')
- כן : האם למשתמש יש חשבון תואם במערכת האימות שלכם? (מתקשרים אל
check intentכדי לאשר)- YES : מתבצעת שיחה אל
get intentוהחשבון מקושר אם הכוונה get מוחזרת בהצלחה. - לא : ליצור חשבון חדש? (המשתמש בוחר באפשרות YES או NO)
- כן : מתבצעת שיחה עם
create intentוהחשבון מקושר אם כוונת היצירה מוחזרת בהצלחה. - לא : תהליך OAuth באינטרנט מופעל, המשתמש מועבר לדפדפן שלו ומוצגת לו האפשרות לקשר עם כתובת אימייל אחרת.
- כן : מתבצעת שיחה עם
- YES : מתבצעת שיחה אל
- לא : מופעל תהליך OAuth בדפדפן, המשתמש מועבר לדפדפן שלו ומוצגת לו אפשרות לקשר עם כתובת אימייל אחרת.
- כן : האם למשתמש יש חשבון תואם במערכת האימות שלכם? (מתקשרים אל
- לא : האם למשתמש יש חשבון תואם במערכת האימות שלך? (מתקשרים אל
check intentכדי לאשר)- YES : מתבצעת שיחה אל
get intentוהחשבון מקושר אם הכוונה get מוחזרת בהצלחה. - לא : מתבצעת קריאה אל
create intentוהחשבון מקושר אם כוונת היצירה מוחזרת בהצלחה.
- YES : מתבצעת שיחה אל
- כן : המשתמש משתמש בכתובת האימייל שמשויכת לחשבון Google שלו כדי להיכנס לפלטפורמה שלכם. (המשתמש מחליט על ידי בחירה באפשרות 'כן' או 'לא')
חיפוש חשבון משתמש קיים (בדיקת הכוונה)
אחרי שהמשתמש מביע הסכמה לגשת לפרופיל Google שלו, Google שולחת בקשה שמכילה טענת נכוֹנוּת (assertion) חתומה של זהות המשתמש ב-Google. טענת הנכוֹנוּת (assertion) מכילה מידע שכולל את מספר חשבון Google של המשתמש, שם וכתובת אימייל. נקודת הקצה להחלפת אסימונים שהוגדרה עבור בפרויקט הזה יטפל בבקשה הזו.
אם חשבון Google התואם כבר קיים באימות
המערכת, נקודת הקצה של המרת האסימונים מגיבה עם account_found=true. אם
חשבון Google לא תואם למשתמש קיים, שהוא נקודת הקצה של המרת האסימונים
מחזירה שגיאת HTTP 404 Not Found (לא נמצא) עם account_found=false.
הבקשה מוצגת בפורמט הבא:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&intent=check&assertion=JWT&scope=SCOPES&client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET
נקודת הקצה (endpoint) של המרת האסימונים חייבת להיות מסוגלת לטפל בפרמטרים הבאים:
| פרמטרים של נקודת קצה של אסימון | |
|---|---|
intent |
בבקשות האלה, הערך של הפרמטר הזה הוא
check |
grant_type |
סוג האסימון המוחלף. בבקשות האלה,
מכיל את הערך urn:ietf:params:oauth:grant-type:jwt-bearer. |
assertion |
אסימון רשת מבוסס JSON (JWT) שמספק טענת נכוֹנוּת (assertion) חתומה של זהות המשתמש. ה-JWT מכיל מידע שכולל את שם המשתמש מספר חשבון Google, שם וכתובת אימייל. |
client_id |
מזהה הלקוח שהקצית ל-Google. |
client_secret |
סוד הלקוח שהקצית ל-Google. |
כדי להגיב לבקשות Intent מסוג check, נקודת הקצה (endpoint) של המרת האסימונים חייבת לבצע את השלבים הבאים:
- לאמת ולפענח את טענת הנכוֹנוּת (assertion) של JWT.
- בודקים אם חשבון Google כבר קיים במערכת האימות.
אימות ופענוח של טענת הנכוֹנוּת (assertion) של JWT
אפשר לאמת ולפענח את טענת הנכוֹנוּת (assertion) של JWT באמצעות ספריית פענוח קוד JWT לשפה שלכם. כדאי להשתמש המפתחות הציבוריים של Google זמינים ב JWK או של PEM לצורך אימות לחתימה של האסימון.
אחרי הפענוח, טענת הנכוֹנוּת (assertion) של ה-JWT תיראה כמו הדוגמה הבאה:
{ "sub": "1234567890", // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "email_verified": true, // true, if Google has verified the email address "hd": "example.com", // If present, the host domain of the user's GSuite email address // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/AOh14GjlTnZKHAeb94A-FmEbwZv7uJD986VOF1mJGb2YYQ", "locale": "en_US" // User's locale, from browser or phone settings }
בנוסף לאימות החתימה של האסימון, צריך לוודא
מנפיק (השדה iss) הוא https://accounts.google.com, שהקהל
(השדה aud) הוא מזהה הלקוח שהוקצה לך, ושתוקף האסימון לא פג
(השדה exp).
באמצעות השדות email, email_verified ו-hd אפשר לקבוע אם
Google מארחת כתובת אימייל מסוימת, והיא מהימן. במקרים שבהם Google
מהימן, כרגע ידוע שהמשתמש הוא הבעלים החוקיים של החשבון
ותוכלו לדלג על סיסמה או על שיטות אחרות לאתגרים. אחרת, השיטות האלה
יכול לשמש לאימות החשבון לפני הקישור.
מקרים שבהם Google היא מהימן:
- ל-
emailיש סיומת@gmail.com. זהו חשבון Gmail. email_verifiedמוגדר כ-True ו-hdמוגדר. זהו חשבון G Suite.
משתמשים יכולים להירשם לחשבונות Google בלי להשתמש ב-Gmail או ב-G Suite. מתי
email לא מכיל סיומת @gmail.com ו-hd חסר Google
מומלץ לאמת סיסמה או סיסמה או שיטות אחרות לאימות
למשתמש. email_verified יכול להיות גם נכון כי Google אימתה בהתחלה את
משתמש כשחשבון Google נוצר, אבל בעלות על הצד השלישי
ייתכן שחשבון האימייל השתנה מאז.
בודקים אם חשבון Google כבר קיים במערכת האימות
בודקים אם אחד מהתנאים הבאים מתקיים:
- מספר חשבון Google, שנמצא בשדה
subבטענת הנכונות (assertion) שלך, נמצא אצל המשתמש. מסד נתונים. - כתובת האימייל בטענת הנכונות (assertion) תואמת למשתמש במסד הנתונים של המשתמשים.
אם אחד מהתנאים מתקיים, המשתמש כבר נרשם. במקרה הזה, תשובה כזו:
HTTP/1.1 200 Success
Content-Type: application/json;charset=UTF-8
{
"account_found":"true",
}
אם מספר חשבון Google או כתובת האימייל לא צוינו
טענת הנכוֹנוּת (assertion) תואמת למשתמש במסד הנתונים, המשתמש עדיין לא נרשם. לחשבון
במקרה הזה, נקודת הקצה (endpoint) של המרת האסימון צריכה להשיב עם שגיאת HTTP 404
שמציין את "account_found": "false", כמו בדוגמה הבאה:
HTTP/1.1 404 Not found
Content-Type: application/json;charset=UTF-8
{
"account_found":"false",
}
טיפול בקישור אוטומטי (השגת כוונה)
אחרי שהמשתמש מביע הסכמה לגשת לפרופיל Google שלו, Google שולחת בקשה שמכילה טענת נכוֹנוּת (assertion) חתומה של זהות המשתמש ב-Google. טענת הנכוֹנוּת (assertion) מכילה מידע שכולל את מספר חשבון Google של המשתמש, שם וכתובת אימייל. נקודת הקצה להחלפת אסימונים שהוגדרה עבור בפרויקט הזה יטפל בבקשה הזו.
אם חשבון Google התואם כבר קיים באימות
נקודת הקצה (endpoint) של המרת האסימון מחזירה אסימון עבור המשתמש. אם
חשבון Google לא תואם למשתמש קיים, שהוא נקודת הקצה של המרת האסימון
מחזירה שגיאת linking_error ושדה login_hint אופציונלי.
הבקשה מוצגת בפורמט הבא:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&intent=get&assertion=JWT&scope=SCOPES&client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET
נקודת הקצה (endpoint) של המרת האסימונים חייבת להיות מסוגלת לטפל בפרמטרים הבאים:
| פרמטרים של נקודת קצה של אסימון | |
|---|---|
intent |
בבקשות האלה, הערך של הפרמטר הזה הוא get. |
grant_type |
סוג האסימון המוחלף. בבקשות האלה,
מכיל את הערך urn:ietf:params:oauth:grant-type:jwt-bearer. |
assertion |
אסימון רשת מבוסס JSON (JWT) שמספק טענת נכוֹנוּת (assertion) חתומה של זהות המשתמש. ה-JWT מכיל מידע שכולל את שם המשתמש מספר חשבון Google, שם וכתובת אימייל. |
scope |
אופציונלי: היקפי הרשאות שהגדרתם ל-Google לבקש מהם משתמשים. |
client_id |
מזהה הלקוח שהקצית ל-Google. |
client_secret |
סוד הלקוח שהקצית ל-Google. |
כדי להגיב לבקשות Intent מסוג get, נקודת הקצה (endpoint) של המרת האסימונים חייבת לבצע את השלבים הבאים:
- לאמת ולפענח את טענת הנכוֹנוּת (assertion) של JWT.
- בודקים אם חשבון Google כבר קיים במערכת האימות.
אימות ופענוח של טענת הנכוֹנוּת (assertion) של JWT
אפשר לאמת ולפענח את טענת הנכוֹנוּת (assertion) של JWT באמצעות ספריית פענוח קוד JWT לשפה שלכם. כדאי להשתמש המפתחות הציבוריים של Google זמינים ב JWK או של PEM לצורך אימות לחתימה של האסימון.
אחרי הפענוח, טענת הנכוֹנוּת (assertion) של ה-JWT תיראה כמו הדוגמה הבאה:
{ "sub": "1234567890", // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "email_verified": true, // true, if Google has verified the email address "hd": "example.com", // If present, the host domain of the user's GSuite email address // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/AOh14GjlTnZKHAeb94A-FmEbwZv7uJD986VOF1mJGb2YYQ", "locale": "en_US" // User's locale, from browser or phone settings }
בנוסף לאימות החתימה של האסימון, צריך לוודא
מנפיק (השדה iss) הוא https://accounts.google.com, שהקהל
(השדה aud) הוא מזהה הלקוח שהוקצה לך, ושתוקף האסימון לא פג
(השדה exp).
באמצעות השדות email, email_verified ו-hd אפשר לקבוע אם
Google מארחת כתובת אימייל מסוימת, והיא מהימן. במקרים שבהם Google
מהימן, כרגע ידוע שהמשתמש הוא הבעלים החוקיים של החשבון
ותוכלו לדלג על סיסמה או על שיטות אחרות לאתגרים. אחרת, השיטות האלה
יכול לשמש לאימות החשבון לפני הקישור.
מקרים שבהם Google היא מהימן:
- ל-
emailיש סיומת@gmail.com. זהו חשבון Gmail. email_verifiedמוגדר כ-True ו-hdמוגדר. זהו חשבון G Suite.
משתמשים יכולים להירשם לחשבונות Google בלי להשתמש ב-Gmail או ב-G Suite. מתי
email לא מכיל סיומת @gmail.com ו-hd חסר Google
מומלץ לאמת סיסמה או סיסמה או שיטות אחרות לאימות
למשתמש. email_verified יכול להיות גם נכון כי Google אימתה בהתחלה את
משתמש כשחשבון Google נוצר, אבל בעלות על הצד השלישי
ייתכן שחשבון האימייל השתנה מאז.
בודקים אם חשבון Google כבר קיים במערכת האימות
בודקים אם אחד מהתנאים הבאים מתקיים:
- מספר חשבון Google, שנמצא בשדה
subבטענת הנכונות (assertion) שלך, נמצא אצל המשתמש. מסד נתונים. - כתובת האימייל בטענת הנכונות (assertion) תואמת למשתמש במסד הנתונים של המשתמשים.
אם נמצא חשבון למשתמש, מנפיקים אסימון גישה ומחזירים את הערכים באובייקט JSON בגוף תגובת ה-HTTPS, כמו בדוגמה הבאה:
{ "token_type": "Bearer", "access_token": "ACCESS_TOKEN", "refresh_token": "REFRESH_TOKEN", "expires_in": SECONDS_TO_EXPIRATION }
במקרים מסוימים, קישור חשבונות שמבוסס על אסימון מזהה עלול להיכשל עבור המשתמש. אם
מכל סיבה שהיא, נקודת הקצה של המרת אסימונים צריכה להשיב באמצעות HTTP
שגיאת 401 שמציינת error=linking_error, כמו בדוגמה הבאה:
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"error":"linking_error",
"login_hint":"foo@bar.com"
}
כש-Google מקבלת תגובה לשגיאה 401 עם linking_error, Google שולחת
המשתמש בנקודת הקצה של ההרשאה עם login_hint כפרמטר.
משתמש משלים את קישור החשבון באמצעות תהליך הקישור של OAuth בדפדפן שלו.
טיפול ביצירת חשבון באמצעות 'כניסה באמצעות חשבון Google' (יצירת כוונה)
כשמשתמש צריך ליצור חשבון בשירות שלכם, Google שולחת בקשה לנקודת הקצה של החלפת האסימונים שלכם, שמצוין בה intent=create.
הבקשה נראית כך:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded response_type=token&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=SCOPES&intent=create&assertion=JWT&client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET
נקודת הקצה (endpoint) של החלפת האסימון צריכה להיות מסוגלת לטפל בפרמטרים הבאים:
| פרמטרים של נקודת הקצה של הטוקן | |
|---|---|
intent |
בבקשות האלה, הערך של הפרמטר הזה הוא create. |
grant_type |
סוג הטוקן שמוחלף. בבקשות האלה, הערך של הפרמטר הזה הוא urn:ietf:params:oauth:grant-type:jwt-bearer. |
assertion |
אסימון JWT (JSON Web Token) שמספק טענה חתומה לגבי הזהות של משתמש Google. ה-JWT מכיל מידע שכולל את מזהה חשבון Google של המשתמש, השם וכתובת האימייל. |
client_id |
מזהה הלקוח שהקציתם ל-Google. |
client_secret |
סוד הלקוח שהקציתם ל-Google. |
ה-JWT בפרמטר assertion מכיל את מזהה חשבון Google של המשתמש, את השם וכתובת האימייל שלו, ואפשר להשתמש בו כדי ליצור חשבון חדש בשירות שלכם.
כדי להגיב לבקשות של Intent create, נקודת הקצה להחלפת טוקנים צריכה לבצע את השלבים הבאים:
- מאמתים ומפענחים את הצהרת ה-JWT.
- מאמתים את פרטי המשתמש ויוצרים חשבון חדש.
אימות ופענוח של טענת הנכוֹנוּת (assertion) של JWT
אפשר לאמת ולפענח את טענת הנכוֹנוּת (assertion) של JWT באמצעות ספריית פענוח קוד JWT לשפה שלכם. כדאי להשתמש המפתחות הציבוריים של Google זמינים ב JWK או של PEM לצורך אימות לחתימה של האסימון.
אחרי הפענוח, טענת הנכוֹנוּת (assertion) של ה-JWT תיראה כמו הדוגמה הבאה:
{ "sub": "1234567890", // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "email_verified": true, // true, if Google has verified the email address "hd": "example.com", // If present, the host domain of the user's GSuite email address // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/AOh14GjlTnZKHAeb94A-FmEbwZv7uJD986VOF1mJGb2YYQ", "locale": "en_US" // User's locale, from browser or phone settings }
בנוסף לאימות החתימה של האסימון, צריך לוודא
מנפיק (השדה iss) הוא https://accounts.google.com, שהקהל
(השדה aud) הוא מזהה הלקוח שהוקצה לך, ושתוקף האסימון לא פג
(השדה exp).
באמצעות השדות email, email_verified ו-hd אפשר לקבוע אם
Google מארחת כתובת אימייל מסוימת, והיא מהימן. במקרים שבהם Google
מהימן, כרגע ידוע שהמשתמש הוא הבעלים החוקיים של החשבון
ותוכלו לדלג על סיסמה או על שיטות אחרות לאתגרים. אחרת, השיטות האלה
יכול לשמש לאימות החשבון לפני הקישור.
מקרים שבהם Google היא מהימן:
- ל-
emailיש סיומת@gmail.com. זהו חשבון Gmail. email_verifiedמוגדר כ-True ו-hdמוגדר. זהו חשבון G Suite.
משתמשים יכולים להירשם לחשבונות Google בלי להשתמש ב-Gmail או ב-G Suite. מתי
email לא מכיל סיומת @gmail.com ו-hd חסר Google
מומלץ לאמת סיסמה או סיסמה או שיטות אחרות לאימות
למשתמש. email_verified יכול להיות גם נכון כי Google אימתה בהתחלה את
משתמש כשחשבון Google נוצר, אבל בעלות על הצד השלישי
ייתכן שחשבון האימייל השתנה מאז.
אימות פרטי המשתמש ויצירת חשבון חדש
בודקים אם אחד מהתנאים הבאים מתקיים:
- מזהה חשבון Google, שמופיע בשדה
subשל הצהרת הזהות, נמצא במסד נתוני המשתמשים. - כתובת האימייל בהצהרה תואמת למשתמש במסד הנתונים של המשתמשים.
אם אחד מהתנאים מתקיים, מציגים למשתמש בקשה לקשר את החשבון הקיים שלו לחשבון Google. כדי לעשות זאת, צריך להגיב לבקשה עם שגיאת HTTP 401 שמציינת את error=linking_error ומציגה את כתובת האימייל של המשתמש כlogin_hint. זוהי דוגמה לתשובה:
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"error":"linking_error",
"login_hint":"foo@bar.com"
}
כש-Google מקבלת תגובת שגיאה 401 עם linking_error, Google שולחת את המשתמש לנקודת הקצה (endpoint) של ההרשאה עם login_hint כפרמטר. המשתמש משלים את קישור החשבון באמצעות תהליך הקישור של OAuth בדפדפן.
אם אף אחד מהתנאים לא מתקיים, צריך ליצור חשבון משתמש חדש עם המידע שמופיע ב-JWT. בדרך כלל, לא מוגדרת סיסמה לחשבונות חדשים. מומלץ להוסיף את 'כניסה באמצעות חשבון Google' לפלטפורמות אחרות כדי לאפשר למשתמשים להיכנס באמצעות חשבון Google בכל הפלטפורמות של האפליקציה. לחלופין, אפשר לשלוח למשתמש באימייל קישור שמתחיל את תהליך שחזור הסיסמה, כדי לאפשר לו להגדיר סיסמה לכניסה לפלטפורמות אחרות.
בסיום היצירה, צריך להנפיק טוקן גישה ולהחזיר את הערכים באובייקט JSON בגוף תגובת ה-HTTPS, כמו בדוגמה הבאה:
{ "token_type": "Bearer", "access_token": "ACCESS_TOKEN", "refresh_token": "REFRESH_TOKEN", "expires_in": SECONDS_TO_EXPIRATION }
איך מקבלים את מזהה הלקוח ב-Google API
במהלך תהליך ההרשמה לקישור החשבון, תצטרכו לספק את מזהה הלקוח של Google API.
כדי לקבל את מזהה הלקוח של ה-API באמצעות הפרויקט שיצרתם במהלך השלבים של קישור OAuth. כדי לעשות זאת, פועלים לפי השלבים הבאים:
- עוברים אל דף הלקוחות.
יוצרים פרויקט ב-Google APIs או בוחרים פרויקט קיים.
אם בפרויקט שלכם אין מזהה לקוח מסוג אפליקציית אינטרנט, לוחצים על יצירת לקוח כדי ליצור אחד. חשוב להוסיף את הדומיין של האתר לתיבה מקורות מורשים של JavaScript. כשמבצעים בדיקות מקומיות או פיתוח, צריך להוסיף את
http://localhostואתhttp://localhost:<port_number>לשדה מקורות JavaScript מורשים.
אימות ההטמעה
כדי לאמת את ההטמעה, אפשר להשתמש בכלי OAuth 2.0 Playground.
בכלי, מבצעים את השלבים הבאים:
- לוחצים על Configuration (הגדרה) כדי לפתוח את חלון ההגדרה של OAuth 2.0.
- בשדה OAuth flow (תהליך OAuth), בוחרים באפשרות Client-side (בצד הלקוח).
- בשדה OAuth Endpoints (נקודות קצה של OAuth), בוחרים באפשרות Custom (מותאם אישית).
- בשדות המתאימים, מציינים את נקודת הקצה של OAuth 2.0 ואת מזהה הלקוח שהקציתם ל-Google.
- בקטע Step 1, לא בוחרים אף היקף של Google. במקום זאת, משאירים את השדה הזה ריק או מקלידים היקף הרשאות שתקף לשרת (או מחרוזת שרירותית אם לא משתמשים בהיקפי הרשאות OAuth). בסיום, לוחצים על הרשאת ממשקי API.
- בקטעים שלב 2 ושלב 3, עוברים על תהליך ההרשאה באמצעות OAuth 2.0 ומוודאים שכל שלב פועל כמו שצריך.
כדי לאמת את ההטמעה, אפשר להשתמש בכלי Google Account Linking Demo.
בכלי, מבצעים את השלבים הבאים:
- לוחצים על הכפתור כניסה באמצעות חשבון Google.
- בוחרים את החשבון שרוצים לקשר.
- מזינים את מזהה השירות.
- אפשר להזין היקף אחד או יותר שרוצים לבקש גישה אליהם.
- לוחצים על התחלת ההדגמה.
- כשמופיעה הבקשה, מאשרים שרוצים להסכים לבקשת הקישור או לדחות אותה.
- מוודאים שמופנים לפלטפורמה שלכם.