במאמר הזה מוסבר איך אפליקציות שמותקנות במכשירים כמו טלפונים, טאבלטים ומחשבים משתמשות בנקודות הקצה של Google OAuth 2.0 כדי לאשר גישה אל YouTube Data API.
פרוטוקול OAuth 2.0 מאפשר למשתמשים לשתף נתונים ספציפיים עם אפליקציה, תוך שמירה על הפרטיות של שמות המשתמשים, הסיסמאות ומידע אחר. לדוגמה, אפליקציה יכולה להשתמש ב-OAuth 2.0 כדי לקבל הרשאה להעלות סרטונים לערוץ YouTube של משתמש.
אפליקציות מותקנות מופצות למכשירים פרטניים, ויש להניח שהאפליקציות האלה לא יכולות לשמור סודות. הם יכולים לגשת לממשקי Google API כשהמשתמש נמצא באפליקציה או כשהאפליקציה פועלת ברקע.
תהליך ההרשאה הזה דומה לזה שמשמש עבור אפליקציות של שרתי אינטרנט. ההבדל העיקרי הוא שאפליקציות מותקנות צריכות לפתוח את דפדפן המערכת ולספק URI מקומי להפניה אוטומטית כדי לטפל בתגובות משרת ההרשאות של Google.
ספריות ודגימות
באפליקציות לנייד מומלץ להשתמש בגרסה העדכנית של הספרייה המקורית של Google Identity Services ל-Android ובספרייה המקורית של הכניסה באמצעות חשבון Google ל-iOS. הספריות האלה מטפלות בהרשאות משתמשים, והן פשוטות יותר ליישום מהפרוטוקול ברמה הנמוכה שמתואר כאן.
אם האפליקציות פועלות במכשירים שלא תומכים בדפדפן מערכת או שיש להם יכולות קלט מוגבלות, כמו טלוויזיות, קונסולות משחקים, מצלמות או מדפסות, אפשר לעיין במאמרים בנושא OAuth 2.0 לטלוויזיות ולמכשירים או כניסה ל-Google בטלוויזיות ובמכשירים עם יכולות קלט מוגבלות.
דרישות מוקדמות
הפעלת ממשקי API בפרויקט
בכל אפליקציה ששולחת קריאות ל-Google APIs צריך להפעיל את ממשקי ה-API האלה ב- API Console.
כדי להפעיל API בפרויקט:
- Open the API Library ב Google API Console.
- If prompted, select a project, or create a new one.
- משתמשים בדף Library כדי למצוא ולהפעיל את YouTube Data API. מוצאים ממשקי API אחרים שהאפליקציה תשתמש בהם ומפעילים גם אותם.
יצירת פרטי כניסה להרשאה
לכל אפליקציה שמשתמשת ב-OAuth 2.0 כדי לגשת ל-Google APIs צריכים להיות פרטי הרשאה שמזהים את האפליקציה בשרת OAuth 2.0 של Google. בשלבים הבאים מוסבר איך ליצור פרטי כניסה לפרויקט. לאחר מכן, האפליקציות יכולות להשתמש בפרטי הכניסה כדי לגשת לממשקי API שהפעלתם בפרויקט הזה.
- Go to the Credentials page.
- לוחצים על Create client.
- בקטעים הבאים מתוארים סוגי הלקוחות שנתמכים על ידי שרת ההרשאות של Google. בוחרים את סוג הלקוח שמומלץ לאפליקציה שלכם, נותנים שם ללקוח OAuth ומגדירים את השדות האחרים בטופס לפי הצורך.
Android
- בוחרים בסוג האפליקציה Android.
- מזינים שם ללקוח ב-OAuth. השם הזה מוצג בפרויקט שלכם ב- כדי לזהות את הלקוח.
- מזינים את שם החבילה של אפליקציית Android. הערך הזה מוגדר במאפיין
package
של האלמנט<manifest>
בקובץ המניפסט של האפליקציה. - מזינים את טביעת האצבע של אישור החתימה SHA-1 של הפצת האפליקציה.
- אם האפליקציה שלכם משתמשת בחתימת אפליקציות ב-Google Play, מעתיקים את טביעת האצבע של SHA-1 מדף חתימת האפליקציות ב-Play Console.
- אם אתם מנהלים את חנות המפתחות ואת מפתחות החתימה שלכם, אתם יכולים להשתמש בכלי keytool שכלול ב-Java כדי להדפיס את פרטי האישור בפורמט שנוח לקריאה. מעתיקים את הערך
SHA1
בקטעCertificate fingerprints
של הפלט של keytool. מידע נוסף זמין בקטע אימות הלקוח במאמרי העזרה בנושא ממשקי Google API ל-Android.
- (אופציונלי) אימות הבעלות על אפליקציית Android.
- לוחצים על יצירה.
iOS
- בוחרים את סוג האפליקציה iOS.
- מזינים שם ללקוח ב-OAuth. השם הזה מוצג בפרויקט שלכם ב- כדי לזהות את הלקוח.
- מזינים את מזהה החבילה של האפליקציה. מזהה החבילה הוא הערך של המפתח
CFBundleIdentifier
בקובץ המשאבים של רשימת מאפייני המידע של האפליקציה (info.plist). הערך הזה מוצג בדרך כלל בחלונית General או בחלונית Signing & Capabilities של עורך הפרויקטים ב-Xcode. מזהה החבילה מוצג גם בקטע General Information (מידע כללי) בדף App Information (פרטי אפליקציה) של האפליקציה באתר App Store Connect של אפל.
חשוב לוודא שאתם משתמשים במזהה החבילה הנכון של האפליקציה, כי לא תוכלו לשנות אותו אם אתם משתמשים בתכונה App Check.
- (אופציונלי)
אם האפליקציה פורסמה ב-App Store של אפל, מזינים את מזהה האפליקציה ב-App Store. מזהה החנות הוא מחרוזת מספרית שמופיעה בכל כתובת URL של Apple App Store.
- פותחים את אפליקציית Apple App Store במכשיר iOS או iPadOS.
- מחפשים את האפליקציה.
- לוחצים על לחצן השיתוף (סמל של ריבוע וחץ למעלה).
- בוחרים באפשרות העתקת הקישור.
- מדביקים את הקישור בכלי לעריכת טקסט. מזהה האפליקציה ב-App Store הוא החלק האחרון בכתובת ה-URL.
לדוגמה:
https://apps.apple.com/app/google/id284815942
- (אופציונלי)
מזינים את מזהה הצוות. מידע נוסף זמין במאמר בנושא איתור מזהה הצוות במסמכי התיעוד של חשבון Apple למפתחים.
הערה: אם מפעילים את App Check עבור הלקוח, חובה למלא את השדה Team ID (מזהה הצוות). - (אופציונלי)
מפעילים את App Check באפליקציית iOS. כשמפעילים את App Check, נעשה שימוש בשירות App Attest של Apple כדי לוודא שבקשות OAuth 2.0 שמקורן בלקוח OAuth הן אמיתיות ומגיעות מהאפליקציה שלכם. כך אפשר להפחית את הסיכון להתחזות לאפליקציה. מידע נוסף על הפעלת App Check באפליקציית iOS
- לוחצים על יצירה.
UWP
- בוחרים בסוג האפליקציה Universal Windows Platform.
- מזינים שם ללקוח ב-OAuth. השם הזה מוצג בפרויקט שלכם ב- כדי לזהות את הלקוח.
- מזינים את מזהה האפליקציה בחנות Microsoft Store, שמורכב מ-12 תווים. אפשר למצוא את הערך הזה במרכז השותפים של מיקרוסופט בדף זהות האפליקציה בקטע 'ניהול אפליקציות'.
- לוחצים על יצירה.
באפליקציות UWP, סכמת ה-URI המותאמת אישית לא יכולה להיות ארוכה מ-39 תווים.
זיהוי היקפי גישה
היקפי הרשאות מאפשרים לאפליקציה לבקש גישה רק למשאבים שהיא צריכה, וגם מאפשרים למשתמשים לשלוט בהיקף הגישה שהם מעניקים לאפליקציה. לכן, יכול להיות שיהיה קשר הפוך בין מספר ההיקפים המבוקשים לבין הסבירות לקבלת הסכמת המשתמש.
לפני שמתחילים להטמיע הרשאה מסוג OAuth 2.0, מומלץ לזהות את היקפי ההרשאות שהאפליקציה תזדקק להם כדי לגשת למשאבים.
ב-YouTube Data API גרסה 3 נעשה שימוש בהיקפי ההרשאות הבאים:
היקף | תיאור |
---|---|
https://www. |
ניהול חשבון YouTube שלך |
https://www. |
הצגת רשימה של החברים הפעילים הנוכחיים במועדון החברים של הערוץ, הרמה הנוכחית ותאריך ההצטרפות שלהם |
https://www. |
הצגה, עריכה ומחיקה לצמיתות של סרטונים, דירוגים, תגובות וכתוביות מערוץ YouTube |
https://www. |
הצגת חשבון YouTube שלך |
https://www. |
ניהול הסרטונים שלך ב-YouTube |
https://www. |
הצגה וניהול של הנכסים והתכנים הקשורים שלך ב-YouTube |
https://www. |
הצגת מידע פרטי של ערוץ YouTube שלך הרלוונטי בתהליך הביקורת של שותף YouTube. |
במסמך היקפי OAuth 2.0 API מופיעה רשימה מלאה של היקפי הרשאות שאפשר להשתמש בהם כדי לגשת אל Google APIs.
קבלת אסימוני גישה מסוג OAuth 2.0
בשלבים הבאים מוסבר איך האפליקציה שלכם מתקשרת עם שרת OAuth 2.0 של Google כדי לקבל את הסכמת המשתמש לביצוע בקשת API בשמו. האפליקציה צריכה לקבל את ההסכמה הזו לפני שהיא יכולה לבצע בקשת Google API שמחייבת הרשאת משתמש.
שלב 1: יצירת מאמת קוד ואתגר
Google תומכת בפרוטוקול Proof Key for Code Exchange (מפתח הוכחה להחלפת קוד, PKCE) כדי להפוך את תהליך ההתקנה של האפליקציה למאובטח יותר. לכל בקשת הרשאה נוצר מאמת קוד ייחודי, והערך שלו אחרי השינוי, שנקרא code_challenge, נשלח לשרת ההרשאות כדי לקבל את קוד ההרשאה.
יצירת מאמת הקוד
code_verifier
הוא מחרוזת אקראית מוצפנת עם אנטרופיה גבוהה, שכוללת את התווים הלא שמורים [A-Z] / [a-z] / [0-9] / "-" / "." / "_" / "~", עם אורך מינימלי של 43 תווים ואורך מקסימלי של 128 תווים.
למאמת הקוד צריך להיות מספיק אנטרופיה כדי שיהיה לא מעשי לנחש את הערך.
יצירת אתגר קוד
יש שתי שיטות ליצירת אתגר קוד.
שיטות ליצירת אתגר קוד | |
---|---|
S256 (מומלץ) | אתגר הקוד הוא גיבוב SHA256 של מאמת הקוד בקידוד Base64URL (ללא ריפוד).
|
plain | אתגר הקוד הוא אותו ערך כמו מאמת הקוד שנוצר למעלה.
|
שלב 2: שליחת בקשה לשרת OAuth 2.0 של Google
כדי לקבל הרשאת משתמש, שולחים בקשה לשרת ההרשאות של Google בכתובת https://accounts.google.com/o/oauth2/v2/auth
. נקודת הקצה הזו מטפלת בחיפוש של סשנים פעילים, מבצעת אימות של המשתמש ומקבלת את הסכמת המשתמש. אפשר לגשת לנקודת הקצה רק דרך SSL, והיא דוחה חיבורי HTTP (לא SSL).
שרת ההרשאות תומך בפרמטרים הבאים של מחרוזת השאילתה עבור אפליקציות מותקנות:
פרמטרים | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client_id |
חובה
מזהה הלקוח של האפליקציה. אפשר למצוא את הערך הזה ב . |
||||||||||||||||
redirect_uri |
חובה
הפרמטר הזה קובע איך שרת ההרשאות של Google שולח תגובה לאפליקציה שלכם. יש כמה אפשרויות להפניה אוטומטית לאפליקציות מותקנות, ואתם צריכים להגדיר את פרטי ההרשאה שלכם עם שיטת הפניה אוטומטית מסוימת. הערך חייב להיות זהה לאחד מכתובות ה-URI המורשות להפניה אוטומטית של לקוח OAuth 2.0, שהגדרתם ב-
של הלקוח. אם הערך הזה לא תואם ל-URI מורשה, תקבלו שגיאת בטבלה הבאה מוצג ערך הפרמטר
|
||||||||||||||||
response_type |
חובה
הפונקציה קובעת אם נקודת הקצה של Google OAuth 2.0 מחזירה קוד הרשאה. מגדירים את ערך הפרמטר ל- |
||||||||||||||||
scope |
חובה
רשימה של היקפי הרשאות שמופרדים ברווחים ומזהים את המשאבים שהאפליקציה יכולה לגשת אליהם בשם המשתמש. הערכים האלה משמשים את מסך ההסכמה שמוצג למשתמש על ידי Google. היקפי הרשאות מאפשרים לאפליקציה לבקש גישה רק למשאבים שהיא צריכה, וגם מאפשרים למשתמשים לשלוט במידת הגישה שהם מעניקים לאפליקציה. לכן, יש קשר הפוך בין מספר ההיקפים המבוקשים לבין הסבירות לקבלת הסכמת המשתמש. ב-YouTube Data API גרסה 3 נעשה שימוש בהיקפי ההרשאות הבאים:
במסמך היקפי OAuth 2.0 API מופיעה רשימה מלאה של היקפי הרשאות שאפשר להשתמש בהם כדי לגשת אל Google APIs. |
||||||||||||||||
code_challenge |
מומלץ
מציין |
||||||||||||||||
code_challenge_method |
מומלץ
מציין באיזו שיטה נעשה קידוד של |
||||||||||||||||
state |
מומלץ
מציין ערך מחרוזת שהאפליקציה משתמשת בו כדי לשמור על מצב בין בקשת ההרשאה לבין התגובה של שרת ההרשאה.
השרת מחזיר את הערך המדויק שאתם שולחים כצמד אפשר להשתמש בפרמטר הזה למגוון מטרות, כמו הפניית המשתמש למשאב הנכון באפליקציה, שליחת ערכי nonce וצמצום הסיכון לזיוף בקשות חוצות אתרים. מכיוון שאפשר לנחש את |
||||||||||||||||
login_hint |
אופציונלי
אם האפליקציה יודעת איזה משתמש מנסה לבצע אימות, היא יכולה להשתמש בפרמטר הזה כדי לספק רמז לשרת האימות של Google. השרת משתמש ברמז כדי לפשט את תהליך הכניסה, למשל על ידי מילוי מראש של שדה האימייל בטופס הכניסה או על ידי בחירת סשן הכניסה המתאים. מגדירים את ערך הפרמטר לכתובת אימייל או למזהה |
כתובות URL לדוגמה של הרשאות
בכרטיסיות שבהמשך מוצגות דוגמאות לכתובות URL של הרשאה לאפשרויות שונות של כתובות URI להפניה אוטומטית.
כל כתובת URL מבקשת גישה להיקף שמאפשר גישה לצפייה בחשבון YouTube של המשתמש.כתובות ה-URL זהות, למעט הערך של הפרמטר redirect_uri
. כתובות ה-URL
כוללות גם את הפרמטרים הנדרשים response_type
ו-client_id
, וגם את הפרמטר האופציונלי state
. כל כתובת URL מכילה מעברי שורה ורווחים כדי לשפר את הקריאות.
סכמת URI מותאמת אישית
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=com.example.app%3A/oauth2redirect& client_id=client_id
כתובת IP של Loopback
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=http%3A//127.0.0.1%3A9004& client_id=client_id
שלב 3: המשתמש מקבל בקשה להסכמה מ-Google
בשלב הזה, המשתמש מחליט אם להעניק לאפליקציה שלכם את הגישה המבוקשת. בשלב הזה, Google מציגה חלון הסכמה שבו מופיעים שם האפליקציה ושירותי Google API שהאפליקציה מבקשת הרשאת גישה אליהם באמצעות פרטי ההרשאה של המשתמש, וגם סיכום של היקפי הגישה שיוענקו. לאחר מכן, המשתמש יכול להסכים להעניק גישה להיקף אחד או יותר של הרשאות שהאפליקציה מבקשת, או לדחות את הבקשה.
האפליקציה לא צריכה לעשות שום דבר בשלב הזה, כי היא ממתינה לתשובה משרת OAuth 2.0 של Google, שתציין אם ניתנה גישה כלשהי. התגובה הזו מוסברת בשלב הבא.
שגיאות
יכול להיות שבקשות לנקודת הקצה של הרשאת OAuth 2.0 של Google יציגו הודעות שגיאה שמוצגות למשתמשים, במקום תהליכי האימות וההרשאה הצפויים. בהמשך מפורטים קודי שגיאה נפוצים והצעות לפתרונות.
admin_policy_enforced
לא ניתן לאשר את חשבון Google לאחת או יותר מההרשאות המבוקשות בגלל המדיניות של האדמין ב-Google Workspace. מידע נוסף על האופן שבו אדמין יכול להגביל את הגישה לכל היקפי ההרשאות או להיקפי הרשאות רגישים ומוגבלים עד למתן גישה מפורשת למזהה לקוח OAuth זמין במאמר שליטה בגישה של אפליקציות של צד שלישי ואפליקציות פנימיות לנתונים ב-Google Workspace במרכז העזרה לאדמינים של Google Workspace.
disallowed_useragent
נקודת הקצה של ההרשאה מוצגת בתוך סוכן משתמש מוטמע שאסור לשימוש על פי מדיניות Google בנושא OAuth 2.0.
Android
מפתחי Android עשויים להיתקל בהודעת השגיאה הזו כשהם פותחים בקשות הרשאה ב-android.webkit.WebView
.
במקום זאת, מפתחים צריכים להשתמש בספריות של Android כמו כניסה באמצעות חשבון Google ל-Android או AppAuth ל-Android של OpenID Foundation.
מפתחי אתרים עשויים להיתקל בשגיאה הזו כשמשתמש עובר מאתר שלכם לנקודת ההרשאה של Google OAuth 2.0, ואפליקציית Android פותחת קישור כללי לאתר בסוכן משתמש מוטמע. מפתחים צריכים לאפשר פתיחה של קישורים כלליים בטיפול בקישורים שמוגדר כברירת מחדל במערכת ההפעלה, כולל טיפול בקישורים לאפליקציות ל-Android או באפליקציית הדפדפן שמוגדרת כברירת מחדל. ספריית Android Custom Tabs היא גם אפשרות נתמכת.
iOS
מפתחים של iOS ו-macOS עשויים להיתקל בשגיאה הזו כשהם פותחים בקשות הרשאה ב-WKWebView
.
במקום זאת, מפתחים צריכים להשתמש בספריות iOS כמו Google Sign-In for iOS או AppAuth for iOS של OpenID Foundation.
מפתחי אתרים עשויים להיתקל בשגיאה הזו כשמשתמש מנווט באתר שלכם מאפליקציית iOS או macOS שפותחת קישור כללי לאינטרנט בסוכן משתמש מוטמע, אל נקודת הקצה של Google להרשאה באמצעות OAuth 2.0. מפתחים צריכים לאפשר פתיחה של קישורים כלליים בטיפול הקישורים שמוגדר כברירת מחדל במערכת ההפעלה, כולל טיפול בקישורים אוניברסליים או באפליקציית הדפדפן שמוגדרת כברירת מחדל. ספריית SFSafariViewController
היא גם אפשרות נתמכת.
org_internal
מזהה לקוח OAuth בבקשה הוא חלק מפרויקט שמגביל את הגישה לחשבונות Google ב ארגון ספציפי ב-Google Cloud. מידע נוסף על אפשרות ההגדרה הזו זמין בקטע סוג המשתמש במאמר העזרה בנושא הגדרת מסך הסכמה ל-OAuth.
deleted_client
לקוח ה-OAuth שמשמש לשליחת הבקשה נמחק. המחיקה יכולה להתבצע באופן ידני או אוטומטי במקרה של לקוחות שלא נעשה בהם שימוש . אפשר לשחזר לקוחות שנמחקו תוך 30 יום ממועד המחיקה. מידע נוסף
invalid_grant
אם אתם משתמשים במאמת קוד ובאתגר, הפרמטר code_callenge
לא תקין או חסר. מוודאים שהפרמטר code_challenge
מוגדר בצורה נכונה.
כשמבצעים רענון של טוקן גישה, יכול להיות שתוקף הטוקן פג או שהוא בוטל. מאמתים שוב את המשתמש ומבקשים ממנו להביע הסכמה כדי לקבל טוקנים חדשים. אם השגיאה הזו ממשיכה להופיע, צריך לוודא שהאפליקציה הוגדרה בצורה נכונה ושהשתמשתם בטוקנים ובפרמטרים הנכונים בבקשה. אחרת, יכול להיות שחשבון המשתמש נמחק או הושבת.
redirect_uri_mismatch
הפרמטר redirect_uri
שמועבר בבקשת ההרשאה לא תואם לכתובת ה-URI המורשית להפניה אוטומטית עבור מזהה הלקוח של OAuth. בודקים את כתובות ה-URI המורשות להפניה אוטומטית ב-
.
יכול להיות שהערך redirect_uri
שהועבר לא תקין לסוג הלקוח.
הפרמטר redirect_uri
עשוי להתייחס לתהליך OAuth out-of-band (OOB) שהוצא משימוש וכבר לא נתמך. כדי לעדכן את השילוב, אפשר לעיין במדריך להעברת נתונים.
invalid_request
משהו השתבש בבקשה ששלחת. יכולות להיות לכך כמה סיבות:
- הפורמט של הבקשה לא תקין
- בבקשה חסרים פרמטרים נדרשים
- הבקשה משתמשת בשיטת הרשאה ש-Google לא תומכת בה. אימות ששילוב ה-OAuth משתמש בשיטת שילוב מומלצת
- נעשה שימוש בסכימה מותאמת אישית עבור כתובת ה-URI של ההפניה האוטומטית : אם מופיעה הודעת השגיאה Custom URI scheme is not supported on Chrome apps או Custom URI scheme is not enabled for your Android client, המשמעות היא שאתם משתמשים בסכימת URI מותאמת אישית שלא נתמכת באפליקציות Chrome ומושבתת כברירת מחדל ב-Android. מידע נוסף על חלופות לסכימת URI מותאמת אישית
שלב 4: טיפול בתגובת השרת של OAuth 2.0
האופן שבו האפליקציה מקבלת את תגובת ההרשאה תלוי בסכימת ה-URI להפניה אוטומטית שבה היא משתמשת. לא משנה באיזו סכימה משתמשים, התשובה תכיל קוד הרשאה (code
) או שגיאה (error
). לדוגמה, error=access_denied
מציין שהמשתמש דחה את הבקשה.
אם המשתמש מעניק גישה לאפליקציה שלכם, אתם יכולים להחליף את קוד ההרשאה באסימון גישה ובאסימון רענון, כמו שמתואר בשלב הבא.
שלב 5: המרת קוד הרשאה לאסימוני רענון וגישה
כדי להחליף קוד הרשאה באסימון גישה, קוראים לנקודת הקצה https://oauth2.googleapis.com/token
ומגדירים את הפרמטרים הבאים:
שדות | |
---|---|
client_id |
מזהה הלקוח שהתקבל מ . |
client_secret |
סוד הלקוח שהתקבל מ- . |
code |
קוד ההרשאה שמוחזר מהבקשה הראשונית. |
code_verifier |
הקוד לאימות שיצרתם בשלב 1. |
grant_type |
כמו שמוגדר במפרט של OAuth 2.0, הערך של השדה הזה צריך להיות authorization_code . |
redirect_uri |
אחת מכתובות ה-URI להפניה אוטומטית שמופיעות בפרויקט ב- עבור client_id הנתון. |
בקטע הקוד הבא מוצגת בקשה לדוגמה:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7& client_id=your_client_id& client_secret=your_client_secret& redirect_uri=http://127.0.0.1:9004& grant_type=authorization_code
Google מגיבה לבקשה הזו ומחזירה אובייקט JSON שמכיל אסימון גישה לטווח קצר ואסימון רענון.
התשובה מכילה את השדות הבאים:
שדות | |
---|---|
access_token |
האסימון שהאפליקציה שולחת כדי לאשר בקשת Google API. |
expires_in |
משך החיים שנותר של אסימון הגישה בשניות. |
id_token |
הערה: המאפיין הזה מוחזר רק אם הבקשה כוללת היקף זהות, כמו openid , profile או email . הערך הוא אסימון אינטרנט מסוג JSON (JWT) שמכיל מידע על זהות המשתמש בחתימה דיגיטלית. |
refresh_token |
טוקן שאפשר להשתמש בו כדי לקבל טוקן גישה חדש. תוקף הטוקנים לרענון הוא עד שהמשתמש מבטל את הגישה או עד שתוקף הטוקן לרענון פג. חשוב לזכור שאסימוני רענון תמיד מוחזרים עבור אפליקציות מותקנות. |
refresh_token_expires_in |
משך החיים שנותר לאסימון הרענון בשניות. הערך הזה מוגדר רק כשהמשתמש מעניק גישה מוגבלת בזמן. |
scope |
היקפי הגישה שניתנים על ידי access_token מוצגים כרשימה של מחרוזות שמופרדות ברווחים, והן תלויות רישיות. |
token_type |
סוג הטוקן שמוחזר. בשלב הזה, הערך של השדה הזה תמיד מוגדר ל-Bearer . |
בקטע הקוד הבא מוצגת תגובה לדוגמה:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/youtube.force-ssl", "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
שלב 6: בדיקה של היקפי ההרשאות שהמשתמשים העניקו
כשמבקשים כמה הרשאות (היקפי הרשאות), יכול להיות שהמשתמשים לא יאשרו לאפליקציה שלכם גישה לכולן. האפליקציה צריכה לאמת אילו היקפי הרשאות ניתנו בפועל, ולטפל בצורה תקינה במצבים שבהם נדחות הרשאות מסוימות. בדרך כלל, האפליקציה משביתה את התכונות שמסתמכות על היקפי ההרשאות שנדחו.
עם זאת, יש מקרים חריגים. אפליקציות של Google Workspace Enterprise עם הענקת הרשאות ברמת הדומיין, או אפליקציות שמסומנות כמהימנות, לא יציגו את מסך ההסכמה להרשאות המפורטות. במקרה של האפליקציות האלה, המשתמשים לא יראו את מסך ההסכמה עם ההרשאות המפורטות. במקום זאת, האפליקציה תקבל את כל ההיקפים המבוקשים או אף אחד מהם.
מידע מפורט יותר זמין במאמר בנושא איך מטפלים בהרשאות גרנולריות.
כדי לבדוק אם המשתמש העניק לאפליקציה שלכם גישה להיקף מסוים, צריך לבדוק את השדה scope
בתגובה של אסימון הגישה. היקפי הגישה שניתנו על ידי access_token, שמוצגים כרשימה של מחרוזות תלויות-אותיות רישיות שמופרדות ברווחים.
לדוגמה, בתגובה הבאה של אסימון הגישה לדוגמה מצוין שהמשתמש העניק לאפליקציה הרשאה להציג, לערוך ולמחוק לצמיתות סרטונים, דירוגים, תגובות וכתוביות של משתמשים ב-YouTube:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/youtube.force-ssl", "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
קריאה לממשקי Google APIs
אחרי שהאפליקציה מקבלת אסימון גישה, אפשר להשתמש באסימון כדי לבצע קריאות ל-Google API מטעם חשבון משתמש מסוים, אם ניתנו ההיקפים של הגישה שנדרשים על ידי ה-API. כדי לעשות את זה, צריך לכלול את אסימון הגישה בבקשה ל-API באמצעות פרמטר access_token
של שאילתה או ערך של Authorization
כותרת HTTP Bearer
. כשניתן, עדיף להשתמש בכותרת HTTP, כי מחרוזות שאילתה נוטות להיות גלויות ביומני השרת. ברוב המקרים, אפשר להשתמש בספריית לקוח כדי להגדיר את הקריאות ל-Google APIs (לדוגמה, כשקוראים ל-YouTube Data API).
חשוב לדעת ש-YouTube Data API תומך בחשבונות שירות רק עבור בעלי תוכן ב-YouTube שהם הבעלים של כמה ערוצי YouTube ומנהלים אותם, כמו לייבלים ואולפני סרטים.
אתם יכולים להתנסות בכל ממשקי Google APIs ולראות את היקפי ההרשאות שלהם ב-OAuth 2.0 Playground.
דוגמאות ל-HTTP GET
קריאה לנקודת הקצה
youtube.channels
(YouTube Data API) באמצעות כותרת ה-HTTP Authorization: Bearer
עשויה להיראות כך. שימו לב: צריך לציין טוקן גישה משלכם:
GET /youtube/v3/channels?part=snippet&mine=true HTTP/1.1 Host: www.googleapis.com Authorization: Bearer access_token
זוהי קריאה לאותו API עבור המשתמש המאומת באמצעות פרמטר מחרוזת השאילתה access_token
:
GET https://www.googleapis.com/youtube/v3/channels?access_token=access_token&part=snippet&mine=true
curl
דוגמאות
אפשר לבדוק את הפקודות האלה באמצעות אפליקציית שורת הפקודה curl
. הנה דוגמה לשימוש באפשרות של כותרת HTTP (מומלץ):
curl -H "Authorization: Bearer access_token" https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true
או לחלופין, האפשרות של פרמטר מחרוזת השאילתה:
curl https://www.googleapis.com/youtube/v3/channels?access_token=access_token&part=snippet&mine=true
רענון של טוקן גישה
התוקף של טוקנים לגישה פג מדי פעם, והם הופכים לפרטי כניסה לא תקינים לבקשת API קשורה. אתם יכולים לרענן טוקן גישה בלי לבקש מהמשתמש הרשאה (כולל כשהמשתמש לא נמצא), אם ביקשתם גישה אופליין להיקפי ההרשאות שמשויכים לטוקן.
כדי לרענן אסימון גישה, האפליקציה שולחת בקשת HTTPS POST
לשרת ההרשאות של Google (https://oauth2.googleapis.com/token
) שכוללת את הפרמטרים הבאים:
שדות | |
---|---|
client_id |
מזהה הלקוח שהתקבל מ API Console. |
client_secret |
סוד הלקוח שהתקבל מ- API Console.
(הערך client_secret לא רלוונטי לבקשות מלקוחות שרשומים כאפליקציות ל-Android, ל-iOS או ל-Chrome).
|
grant_type |
כפי שמוגדר במפרט של OAuth 2.0, הערך של השדה הזה חייב להיות refresh_token . |
refresh_token |
אסימון הרענון שמוחזר מהמרת קוד ההרשאה. |
בקטע הקוד הבא מוצגת בקשה לדוגמה:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded client_id=your_client_id& client_secret=your_client_secret& refresh_token=refresh_token& grant_type=refresh_token
כל עוד המשתמש לא ביטל את הגישה שניתנה לאפליקציה, שרת הטוקנים מחזיר אובייקט JSON שמכיל טוקן גישה חדש. בקטע הקוד הבא מוצגת דוגמה לתשובה:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "scope": "https://www.googleapis.com/auth/drive.metadata.readonly", "token_type": "Bearer" }
חשוב לשים לב שיש מגבלות על מספר טוקני הרענון שיונפקו: מגבלה אחת לכל שילוב של לקוח/משתמש, ומגבלה נוספת לכל משתמש בכל הלקוחות. מומלץ לשמור אסימוני רענון באחסון לטווח ארוך ולהמשיך להשתמש בהם כל עוד הם בתוקף. אם האפליקציה שלכם מבקשת יותר מדי אסימוני רענון, היא עלולה לחרוג מהמגבלות האלה, ובמקרה כזה אסימוני רענון ישנים יותר יפסיקו לפעול.
ביטול טוקן
במקרים מסוימים, משתמשים רוצים לבטל את הגישה שניתנה לאפליקציה. משתמש יכול לבטל את הגישה דרך הגדרות החשבון. מידע נוסף זמין במאמר התמיכה בנושא אתרים ואפליקציות של צדדים שלישיים בעלי גישה לחשבון שלכם, בקטע 'הסרת גישה של אתר או אפליקציה'.
אפליקציה יכולה גם לבטל את הגישה שניתנה לה באופן פרוגרמטי. ביטול הרשאה באמצעות תוכנה חשוב במקרים שבהם משתמש מבטל את המינוי, מסיר אפליקציה או שמשאבי ה-API שנדרשים לאפליקציה השתנו באופן משמעותי. במילים אחרות, חלק מתהליך ההסרה יכול לכלול בקשת API כדי לוודא שההרשאות שניתנו לאפליקציה בעבר יוסרו.
כדי לבטל אסימון באופן פרוגרמטי, האפליקציה שולחת בקשה אל https://oauth2.googleapis.com/revoke
וכוללת את האסימון כפרמטר:
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/revoke?token={token}
האסימון יכול להיות אסימון גישה או אסימון רענון. אם האסימון הוא אסימון גישה ויש לו אסימון רענון תואם, גם אסימון הרענון יבוטל.
אם הביטול מעובד בהצלחה, קוד הסטטוס של HTTP בתגובה הוא 200
. במקרים של שגיאות, מוחזר קוד סטטוס HTTP 400
יחד עם קוד שגיאה.
שיטות להפניה מחדש של אפליקציות
סכמת URI מותאמת אישית (Android, iOS, UWP)
סכימות URI בהתאמה אישית הן סוג של קישור עומק שמשתמש בסכימה מוגדרת בהתאמה אישית כדי לפתוח את האפליקציה.
חלופה לשימוש בסכימות URI בהתאמה אישית ב-Android
משתמשים בחלופה המומלצת שמעבירה את התגובה של OAuth 2.0 ישירות לאפליקציה, וכך לא צריך להשתמש ב-URI להפניה.
איך עוברים לספריית Android של Google Identity Services
אם אתם משתמשים בסכימה מותאמת אישית לשילוב OAuth ב-Android, תצטרכו לבצע את הפעולות הבאות כדי לעבור באופן מלא לשימוש בספריית Google Identity Services Android המומלצת:
- מעדכנים את הקוד כך שישתמש בספריית Android של Google Identity Services.
- משביתים את התמיכה בסכימה בהתאמה אישית במסוף Google Cloud.
בשלבים הבאים מוסבר איך לבצע מיגרציה לספריית Android של Google Identity Services:
-
מעדכנים את הקוד כך שישתמש בספריית Android של Google Identity Services:
-
בודקים את הקוד כדי לזהות את המקום שבו נשלחת בקשה לשרת OAuth 2.0 של Google. אם משתמשים בסכימה מותאמת אישית, הבקשה תיראה כך:
https://accounts.google.com/o/oauth2/v2/auth? scope=<SCOPES>& response_type=code& &state=<STATE>& redirect_uri=com.example.app:/oauth2redirect& client_id=<CLIENT_ID>
com.example.app:/oauth2redirect
הוא ה-URI של ההפניה של הסכימה בהתאמה אישית בדוגמה שלמעלה. פרטים נוספים על הפורמט של הערך של סכימת ה-URI המותאמת אישית מופיעים בהגדרה של הפרמטרredirect_uri
. -
חשוב לשים לב לפרמטרים של הבקשה
scope
ו-client_id
שצריך להגדיר ב-Google Sign-In SDK. -
כדי להגדיר את ה-SDK, צריך לפעול לפי ההוראות שבמאמר
אישור גישה לנתוני משתמשים ב-Google
אפשר לדלג על השלב הגדרת פרויקט במסוף Google Cloud כי נעשה שימוש חוזר ב-
client_id
שאוחזר בשלב הקודם. -
פועלים לפי ההוראות שבקטע
בקשת הרשאות שנדרשות לפעולות משתמש. התהליך כולל את השלבים הבאים:
- בקשת הרשאות מהמשתמש.
-
משתמשים בשיטה
getServerAuthCode
כדי לאחזר קוד הרשאה להיקפי ההרשאות שאתם מבקשים. - שולחים את קוד ההרשאה לשרת העורפי של האפליקציה כדי להחליף אותו באסימון גישה ורענון.
- משתמשים באסימון הגישה שאוחזר כדי לשלוח קריאות ל-Google APIs מטעם המשתמש.
-
בודקים את הקוד כדי לזהות את המקום שבו נשלחת בקשה לשרת OAuth 2.0 של Google. אם משתמשים בסכימה מותאמת אישית, הבקשה תיראה כך:
-
משביתים את התמיכה בסכימה מותאמת אישית ב-Google API Console:
- עוברים לרשימה של פרטי כניסה של OAuth 2.0 ובוחרים את לקוח Android.
- עוברים לקטע הגדרות מתקדמות, מבטלים את הסימון בתיבת הסימון הפעלת סכימת URI מותאמת אישית ולוחצים על שמירה כדי להשבית את התמיכה בסכימת URI מותאמת אישית.
הפעלת סכימת URI מותאמת אישית
אם החלופה המומלצת לא מתאימה לכם, אתם יכולים להפעיל סכימות URI מותאמות אישית ללקוח Android שלכם באמצעות ההוראות הבאות:- עוברים לרשימה של פרטי הכניסה של OAuth 2.0 ובוחרים את לקוח Android.
- עוברים לקטע הגדרות מתקדמות, מסמנים את התיבה הפעלת סכימת URI מותאמת אישית ולוחצים על שמירה כדי להפעיל תמיכה בסכימת URI מותאמת אישית.
חלופה לשימוש בסכימות URI בהתאמה אישית באפליקציות Chrome
משתמשים ב-Chrome Identity API, שמספק את תגובת ה-OAuth 2.0 ישירות לאפליקציה, כך שלא צריך להשתמש בכתובת URI להפניה אוטומטית.
כתובת IP של Loopback (macOS, Linux, מחשב Windows)
כדי לקבל את קוד ההרשאה באמצעות כתובת ה-URL הזו, האפליקציה צריכה להאזין לשרת האינטרנט המקומי. האפשרות הזו קיימת בהרבה פלטפורמות, אבל לא בכולן. עם זאת, אם הפלטפורמה שלכם תומכת בכך, זהו המנגנון המומלץ לקבלת קוד ההרשאה.
כשהאפליקציה מקבלת את תגובת ההרשאה, מומלץ להציג דף HTML שמנחה את המשתמש לסגור את הדפדפן ולחזור לאפליקציה.
שימוש מומלץ | אפליקציות ל-macOS, ל-Linux ול-Windows לשולחן העבודה (אבל לא Universal Windows Platform) |
ערכי טופס | מגדירים את סוג האפליקציה בתור אפליקציה למחשב. |
העתקה והדבקה ידניות (הוצא משימוש)
הגנה על האפליקציות
אימות הבעלות על האפליקציה (Android, Chrome)
אתם יכולים לאמת את הבעלות על האפליקציה כדי לצמצם את הסיכון להתחזות לאפליקציה.
Android
כדי להשלים את תהליך האימות, אפשר להשתמש בחשבון הפיתוח שלכם ב-Google Play אם יש לכם חשבון כזה והאפליקציה שלכם רשומה ב-Google Play Console. כדי שהאימות יתבצע בהצלחה, צריך לעמוד בדרישות הבאות:
- צריכה להיות לכם אפליקציה רשומה ב-Google Play Console עם אותו שם חבילה וטביעת אצבע של אישור חתימה מסוג SHA-1 כמו לקוח Android OAuth שאתם משלימים את האימות שלו.
- צריכה להיות לכם הרשאת אדמין לאפליקציה ב-Google Play Console. מידע נוסף על ניהול גישה ב-Google Play Console
בקטע Verify App Ownership (אימות בעלות על אפליקציה) בלקוח Android, לוחצים על הלחצן Verify Ownership (אימות בעלות) כדי להשלים את תהליך האימות.
אם האימות יצליח, תוצג הודעה לאישור ההצלחה של תהליך האימות. אחרת, תוצג הודעת שגיאה.
כדי לפתור בעיה באימות שנכשל, אפשר לנסות את הפעולות הבאות:
- מוודאים שהאפליקציה שאתם מאמתים רשומה ב-Google Play Console.
- מוודאים שיש לכם הרשאת אדמין לאפליקציה ב-Google Play Console.
Chrome
כדי להשלים את תהליך האימות, תצטרכו להשתמש בחשבון המפתח שלכם בחנות האינטרנט של Chrome. כדי שהאימות יתבצע בהצלחה, צריך לעמוד בדרישות הבאות:
- צריך שיהיה לכם פריט רשום במרכז השליטה למפתחים של חנות האינטרנט של Chrome עם אותו מזהה פריט כמו לקוח OAuth של תוסף Chrome שאתם משלימים את האימות שלו.
- אתם צריכים להיות בעלי תוכן דיגיטלי של הפריט בחנות האינטרנט של Chrome. מידע נוסף על ניהול גישה במרכז השליטה למפתחים בחנות האינטרנט של Chrome
בקטע אימות הבעלות על האפליקציה בלקוח של תוסף Chrome, לוחצים על הלחצן אימות הבעלות כדי להשלים את תהליך האימות.
הערה: אחרי שמעניקים גישה לחשבון, צריך לחכות כמה דקות לפני שמשלימים את תהליך האימות.
אם האימות יצליח, תוצג הודעה לאישור ההצלחה של תהליך האימות. אחרת, תוצג הודעת שגיאה.
כדי לפתור בעיה באימות שנכשל, אפשר לנסות את הפעולות הבאות:
- צריך לוודא שיש פריט רשום במרכז השליטה למפתחים של חנות האינטרנט של Chrome עם אותו מזהה פריט כמו לקוח ה-OAuth של תוסף Chrome שעבורו אתם משלימים את האימות.
- צריך לוודא שאתם בעלי התוכן הדיגיטלי של האפליקציה, כלומר אתם בעלי התוכן הדיגיטלי היחידים של האפליקציה או חברים בקבוצת בעלי התוכן הדיגיטלי של האפליקציה. מידע נוסף על ניהול גישה במרכז השליטה למפתחים בחנות האינטרנט של Chrome
- אם עדכנתם לאחרונה את רשימת קבוצות בעלי האתרים לפרסום, צריך לוודא שרשימת החברים בקבוצה סונכרנה במרכז השליטה למפתחים של חנות האינטרנט של Chrome. מידע נוסף על סנכרון רשימת החברים במועדון של בעל האתר
בדיקת אפליקציות (iOS בלבד)
התכונה App Check עוזרת להגן על אפליקציות iOS מפני שימוש לא מורשה באמצעות שירות App Attest של Apple. השירות הזה מאמת שבקשות שנשלחות לנקודות הקצה של Google OAuth 2.0 מגיעות מהאפליקציות המקוריות שלכם. כך אפשר להפחית את הסיכון להתחזות לאפליקציה.
הפעלת App Check עבור לקוח iOS
כדי להפעיל בהצלחה את App Check בלקוח iOS, צריך לעמוד בדרישות הבאות:- צריך לציין מזהה צוות עבור לקוח iOS.
- אסור להשתמש בתו כללי במזהה החבילה, כי הוא יכול להתייחס ליותר מאפליקציה אחת. כלומר, מזהה החבילה לא יכול לכלול את הסימן כוכבית (*).
אחרי שמפעילים את App Check, מתחילים לראות מדדים שקשורים לבקשות OAuth מהלקוח בתצוגת העריכה של לקוח OAuth. בקשות ממקורות לא מאומתים לא ייחסמו עד שתפעילו את App Check. המידע בדף 'מעקב אחר מדדים' יכול לעזור לכם להחליט מתי להתחיל באכיפה.
יכול להיות שיוצגו שגיאות שקשורות לתכונה App Check כשמפעילים את App Check באפליקציית iOS. כדי לתקן את השגיאות האלה, אפשר לנסות את הפעולות הבאות:
- מוודאים שמזהה החבילה ומזהה הצוות שציינתם תקינים.
- מוודאים שלא משתמשים בתו כללי לחיפוש במזהה החבילה.
אכיפת בדיקת אפליקציות בלקוח iOS
הפעלת App Check באפליקציה לא חוסמת אוטומטית בקשות לא מזוהות. כדי לאכוף את ההגנה הזו, צריך לעבור לתצוגת העריכה של לקוח iOS. בקטע Google Identity for iOS בצד שמאל של הדף, יופיעו מדדים של App Check. המדדים כוללים את הפרטים הבאים:- מספר הבקשות שאומתו – בקשות שיש להן אסימון App Check תקף. אחרי שמפעילים את האכיפה של App Check, רק בקשות בקטגוריה הזו יצליחו.
- מספר הבקשות שלא אומתו: סביר להניח שמדובר בבקשות לקוח לא עדכניות – בקשות שחסר בהן טוקן של App Check. יכול להיות שהבקשות האלה מגיעות מגרסה ישנה יותר של האפליקציה שלא כוללת הטמעה של App Check.
- מספר הבקשות שלא אומתו: בקשות ממקור לא ידוע – בקשות שחסר בהן טוקן של App Check ולא נראה שהן מגיעות מהאפליקציה שלכם.
- מספר הבקשות שלא אומתו: בקשות לא חוקיות – בקשות עם טוקן לא חוקי של App Check, שיכול להיות שהן מגיעות מלקוח לא אותנטי שמנסה להתחזות לאפליקציה שלכם, או מסביבות מדומה.
כדי לאכוף את App Check, לוחצים על הלחצן ENFORCE (אכיפה) ומאשרים את הבחירה. אחרי שהאכיפה תופעל, כל הבקשות שלא אומתו מהלקוח שלכם יידחו.
הערה: אחרי שמפעילים את האכיפה, יכול להיות שיחלפו עד 15 דקות לפני שהשינויים ייכנסו לתוקף.
ביטול האכיפה של בדיקת האפליקציה בלקוח iOS
השבתת האכיפה של App Check באפליקציה תפסיק את האכיפה ותאפשר לכל הבקשות מהלקוח שלכם להגיע לנקודות הקצה של Google OAuth 2.0, כולל בקשות לא מאומתות.
כדי לבטל את האכיפה של App Check בלקוח iOS, עוברים לתצוגת העריכה של לקוח iOS, לוחצים על הלחצן ביטול האכיפה ומאשרים את הבחירה.
הערה: אחרי שמבטלים את האכיפה של App Check, יכולות לחלוף עד 15 דקות עד שהשינויים ייכנסו לתוקף.
השבתת App Check עבור לקוח iOS
השבתת App Check באפליקציה תפסיק את כל המעקב והאכיפה של App Check. מומלץ לבטל את האכיפה של App Check כדי שתוכלו להמשיך לעקוב אחרי מדדים של הלקוח.
כדי להשבית את App Check בלקוח iOS, עוברים לתצוגת העריכה של לקוח iOS ומשביתים את לחצן ההפעלה/ההשבתה הגנה על לקוח OAuth מפני ניצול לרעה באמצעות Firebase App Check.
הערה: אחרי שמשביתים את App Check, יכולות לחלוף עד 15 דקות עד שהשינויים ייכנסו לתוקף.
גישה מבוססת-זמן
גישה מוגבלת בזמן מאפשרת למשתמש להעניק לאפליקציה שלכם גישה לנתונים שלו למשך זמן מוגבל כדי להשלים פעולה. גישה מוגבלת בזמן זמינה במוצרים נבחרים של Google במהלך תהליך בקשת ההסכמה, ומאפשרת למשתמשים להעניק גישה לתקופה מוגבלת. דוגמה לכך היא Data Portability API, שמאפשר העברה חד-פעמית של נתונים.
כשמשתמש מעניק לאפליקציה גישה מוגבלת בזמן, תוקף אסימון הרענון יפוג אחרי משך הזמן שצוין. חשוב לזכור שבנסיבות מסוימות, יכול להיות שתוקף של טוקנים לרענון יפוג מוקדם יותר. פרטים מופיעים במקרים האלה. השדה refresh_token_expires_in
שמוחזר בתשובה של החלפת קוד ההרשאה מייצג את הזמן שנותר עד שתוקף אסימון הרענון יפוג במקרים כאלה.
קריאה נוספת
השיטות המומלצות שמפורטות כאן מבוססות על השיטות המומלצות של IETF OAuth 2.0 for Native Apps.
הטמעה של ההגנה על כל החשבונות
כדי להגן על החשבונות של המשתמשים, מומלץ להטמיע הגנה על חשבונות שונים באמצעות שירות ההגנה על חשבונות שונים של Google. השירות הזה מאפשר להירשם לקבלת התראות על אירועי אבטחה, שמספקות לאפליקציה מידע על שינויים משמעותיים בחשבון המשתמש. אחר כך תוכלו להשתמש במידע כדי לפעול בהתאם לאופן שבו תבחרו להגיב לאירועים.
דוגמאות לסוגי האירועים שנשלחים לאפליקציה על ידי שירות ההגנה על חשבונות של Google:
-
https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
-
https://schemas.openid.net/secevent/oauth/event-type/token-revoked
-
https://schemas.openid.net/secevent/risc/event-type/account-disabled
מידע נוסף על הטמעה של הגנה על כל החשבונות ורשימה מלאה של האירועים הזמינים מופיע במאמר הגנה על חשבונות משתמשים באמצעות הגנה על כל החשבונות .