ספריית JavaScript לאימות על ידי צד שלישי של Google לאתרים – הפניית API

בהפניה הזו מתואר ממשק ה-API של ספריית JavaScript להרשאה של Google 3P, שאפשר להשתמש בו כדי לטעון קודי הרשאה או אסימוני גישה מ-Google.

שיטה: google.accounts.oauth2.initCodeClient

השיטה initCodeClient מפעילה ומחזירה לקוח קוד, עם ההגדרות בפרמטר.

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

סוג הנתונים: CodeClientConfig

בטבלה הבאה מפורטים המאפיינים של סוג הנתונים CodeClientConfig.

תכונות
client_id חובה. מזהה הלקוח של האפליקציה. אפשר למצוא את הערך הזה במסוף API.
scope חובה. רשימת היקפים מופרדים ברווחים של היקפים שמזהים את המשאבים שהאפליקציה שלך יכולה לגשת אליהם בשם המשתמש. הערכים האלה מציינים את מסך ההסכמה ש-Google מציגה למשתמש.
include_granted_scopes אופציונלי, ברירת המחדל היא true. ההרשאה הזו מאפשרת לאפליקציות להשתמש בהרשאה מצטברת כדי לבקש גישה להיקפים נוספים בהקשר. אם מגדירים את הערך של הפרמטר הזה כ-false ובקשת ההרשאה מאושרת, אסימון הגישה החדש יכסה רק את כל ההיקפים שscope ביקש בCodeClientConfig הזה.
redirect_uri נדרש להפניות לכתובות URL אחרות. המדיניות הזו קובעת לאן שרת ה-API יפנה את המשתמש אוטומטית אחרי שהוא סיים את תהליך ההרשאה. הערך חייב להתאים במדויק לאחד ממזהי ה-URI המורשים להפניה מחדש בלקוח OAuth 2.0, שאותו הגדרת ב-API Console, ועליו להתאים לכללי האימות של URI להפניה אוטומטית. המערכת תתעלם מהנכס על ידי חוויית המשתמש הקופצת.
callback נדרש עבור חוויית משתמש בחלון קופץ. הפונקציה של JavaScript שמטפלת בתגובת קוד שהוחזרה. ממשק המשתמש של ההפניה האוטומטית תתעלם מהנכס.
state אפשרות. מומלץ להפניות לכתובות URL אחרות. מציינת כל ערך מחרוזת שבו האפליקציה משתמשת כדי לשמור על המצב בין בקשת ההרשאה לבין התגובה של שרת ההרשאות.
enable_granular_consent אופציונלי, ברירת המחדל היא true. אם המדיניות מוגדרת לערך false, הרשאות מפורטות יותר לחשבון Google יושבתו למזהי לקוחות ב-OAuth שנוצרו לפני 2019. אם גם enable_granular_consent וגם enable_serial_consent מוגדרים, רק הערך enable_granular_consent ייכנס לתוקף והמערכת תתעלם מהערך enable_serial_consent.

אין השפעה על מזהים חדשים יותר של לקוחות OAuth, כי תמיד מופעלות עבורם הרשאות מפורטות יותר.
enable_serial_consent הוצא משימוש. במקומה יש להשתמש במדיניות enable_granular_consent. יש לכך אותה השפעה כמו enable_granular_consent. אפליקציות קיימות שמשתמשות ב-enable_serial_consent יכולות להמשיך לעשות זאת, אבל כדאי לעדכן את הקוד כך שישתמש ב-enable_granular_consent בעדכון הבא של האפליקציה.
login_hint אפשרות. אם האפליקציה שלך יודעת איזה משתמש צריך לאשר את הבקשה, היא יכולה להשתמש בנכס הזה כדי לספק ל-Google רמז להתחברות. כשהפעולה תושלם, המערכת תדלג על בחירת החשבון. ערך השדה sub של כתובת האימייל או של האסימון המזהה של משתמש היעד. למידע נוסף, ניתן לעיין בשדה login_hint בתיעוד של OpenID Connect.
hd אפשרות. אם האפליקציה שלך יודעת מהו דומיין Workspace שהמשתמש שייך אליו, אפשר להשתמש במידע הזה כדי לתת רמז ל-Google. כשהפעולה תושלם, חשבונות המשתמשים יוגבלו לדומיין שצוין או נבחרו מראש לדומיין שצוין. למידע נוסף, ניתן לעיין בשדה hd בתיעוד של OpenID Connect.
ux_mode אפשרות. מצב ה-UX לשימוש בתהליך ההרשאה. כברירת מחדל, תהליך ההסכמה ייפתח בחלון קופץ. הערכים החוקיים הם popup ו-redirect.
select_account אופציונלי, ברירת המחדל היא 'false'. ערך בוליאני כדי לבקש מהמשתמש לבחור חשבון.
error_callback אפשרות. פונקציית ה-JavaScript שמטפלת בחלק מהשגיאות שאינן OAuth, כמו החלון הקופץ, לא מצליחה לפתוח; או שהיא נסגרת לפני שמוחזרת תגובת OAuth.

השדה 'סוג' של הפרמטר של הקלט מספק את הסיבה המפורטת.
  • popup_failed_to_open החלון הקופץ לא נפתח.
  • popup_closed החלון הקופץ נסגר לפני שמוחזרת תגובת OAuth.
  • Placeholder לשגיאות אחרות לא ידוע.

סוג הנתונים: CodeClient

למחלקה יש רק requestCode אחד גלוי לכולם, ומתחיל את התהליך של חוויית המשתמש ב-OAuth 2.0.

interface CodeClient {
  requestCode(): void;
}

סוג הנתונים: CodeResponse

אובייקט JavaScript מסוג CodeResponse יועבר ל-method callback בחלון הקופץ בחוויית המשתמש. בחוויית המשתמש של ההפניה האוטומטית, הפרמטר CodeResponse יועבר כפרמטרים של כתובת אתר.

בטבלה הבאה מפורטים המאפיינים של סוג הנתונים CodeResponse.

תכונות
code קוד ההרשאה של תגובה מוצלחת של אסימון.
scope רשימה מופרדת ברווחים של היקפים שאושרו על ידי המשתמש.
state ערך המחרוזת שבו האפליקציה שלך משתמשת כדי לשמור על המצב בין בקשת ההרשאה שלך לבין התגובה.
error קוד שגיאת ASCII יחיד.
error_description טקסט ASCII קריא לאנשים שמספק מידע נוסף, המשמש לסיוע למפתח הלקוח להבין את השגיאה שאירעה.
error_uri URI המזהה דף אינטרנט קריא (לבני אדם) ומידע על השגיאה, המשמש כדי לספק למפתח הלקוח מידע נוסף על השגיאה.

שיטה: google.accounts.oauth2.initTokenClient

השיטה initTokenClient מפעילה ומחזירה לקוח אסימון, עם ההגדרות בפרמטר.

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

סוג הנתונים: TokenClientConfig

בטבלה הבאה מפורטים המאפיינים של סוג הנתונים TokenClientConfig.

תכונות
client_id חובה. מזהה הלקוח של האפליקציה. אפשר למצוא את הערך הזה במסוף API.
callback חובה. פונקציית ה-JavaScript שמטפלת בתגובת אסימון שהוחזרה.
scope חובה. רשימת היקפים מופרדים ברווחים של היקפים שמזהים את המשאבים שהאפליקציה שלך יכולה לגשת אליהם בשם המשתמש. הערכים האלה מציינים את מסך ההסכמה ש-Google מציגה למשתמש.
include_granted_scopes אופציונלי, ברירת המחדל היא true. ההרשאה הזו מאפשרת לאפליקציות להשתמש בהרשאה מצטברת כדי לבקש גישה להיקפים נוספים בהקשר. אם מגדירים את הערך של הפרמטר הזה כ-false ובקשת ההרשאה מאושרת, אסימון הגישה החדש יכסה רק את כל ההיקפים שscope ביקש בTokenClientConfig הזה.
prompt אופציונלי, ברירת המחדל היא 'select_account'. רשימה של הנחיות להצגת המשתמש שמופרדות ברווחים, ותלויות אותיות רישיות. הערכים האפשריים הם:
  • Empty string המשתמש יתבקש לבחור רק בפעם הראשונה שהאפליקציה תבקש גישה. לא ניתן לציין אותו עם ערכים אחרים.
  • 'none' לא להציג אף מסך של אימות או הסכמה. אין לציין ערכים אחרים יחד.
  • 'consent': הצגת בקשה בפני המשתמש.
  • 'select_account': הצגת בקשה למשתמש לבחור חשבון.
enable_granular_consent אופציונלי, ברירת המחדל היא true. אם המדיניות מוגדרת לערך false, הרשאות מפורטות יותר לחשבון Google יושבתו למזהי לקוחות ב-OAuth שנוצרו לפני 2019. אם גם enable_granular_consent וגם enable_serial_consent מוגדרים, רק הערך enable_granular_consent ייכנס לתוקף והמערכת תתעלם מהערך enable_serial_consent.

אין השפעה על מזהים חדשים יותר של לקוחות OAuth, כי תמיד מופעלות עבורם הרשאות מפורטות יותר.
enable_serial_consent הוצא משימוש. במקומה יש להשתמש במדיניות enable_granular_consent. יש לכך אותה השפעה כמו enable_granular_consent. אפליקציות קיימות שמשתמשות ב-enable_serial_consent יכולות להמשיך לעשות זאת, אבל כדאי לעדכן את הקוד כך שישתמש ב-enable_granular_consent בעדכון הבא של האפליקציה.
login_hint אפשרות. אם האפליקציה שלך יודעת איזה משתמש צריך לאשר את הבקשה, היא יכולה להשתמש בנכס הזה כדי לספק ל-Google רמז להתחברות. כשהפעולה תושלם, המערכת תדלג על בחירת החשבון. ערך השדה sub של כתובת האימייל או של האסימון המזהה של משתמש היעד. למידע נוסף, ניתן לעיין בשדה login_hint בתיעוד של OpenID Connect.
hd אפשרות. אם האפליקציה שלך יודעת מהו דומיין Workspace שהמשתמש שייך אליו, אפשר להשתמש במידע הזה כדי לתת רמז ל-Google. כשהפעולה תושלם, חשבונות המשתמשים יוגבלו לדומיין שצוין או נבחרו מראש לדומיין שצוין. למידע נוסף, ניתן לעיין בשדה hd בתיעוד של OpenID Connect.
state אפשרות. לא מומלץ. מציינת כל ערך מחרוזת שבו האפליקציה משתמשת כדי לשמור על המצב בין בקשת ההרשאה לבין התגובה של שרת ההרשאות.
error_callback אפשרות. פונקציית ה-JavaScript שמטפלת בחלק מהשגיאות שאינן OAuth, כמו החלון הקופץ, לא מצליחה לפתוח; או שהיא נסגרת לפני שמוחזרת תגובת OAuth.

השדה 'סוג' של הפרמטר של הקלט מספק את הסיבה המפורטת.
  • popup_failed_to_open החלון הקופץ לא נפתח.
  • popup_closed החלון הקופץ נסגר לפני שמוחזרת תגובת OAuth.
  • Placeholder לשגיאות אחרות לא ידוע.

סוג הנתונים: TokenClient

לכיתה יש רק שיטה ציבורית אחת מסוג requestAccessToken, שמתחילה את תהליך חוויית המשתמש של אסימון OAuth 2.0.

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
ארגומנטים
overrideConfig OverridableTokenClientConfig אפשרות. ההגדרות שיש לשנות בשיטה הזו.

סוג הנתונים: OverridableTokenClientConfig

בטבלה הבאה מפורטים המאפיינים של סוג הנתונים OverridableTokenClientConfig.

תכונות
scope אפשרות. רשימת היקפים מופרדים ברווחים של היקפים שמזהים את המשאבים שהאפליקציה שלך יכולה לגשת אליהם בשם המשתמש. הערכים האלה מציינים את מסך ההסכמה ש-Google מציגה למשתמש.
include_granted_scopes אופציונלי, ברירת המחדל היא true. ההרשאה הזו מאפשרת לאפליקציות להשתמש בהרשאה מצטברת כדי לבקש גישה להיקפים נוספים בהקשר. אם מגדירים את הערך של הפרמטר הזה כ-false ובקשת ההרשאה מאושרת, אסימון הגישה החדש יכסה רק את כל ההיקפים שscope ביקש בOverridableTokenClientConfig הזה.
prompt אפשרות. רשימת הנחיות להצגת המשתמש שמופרדת ברווחים ותלוית אותיות רישיות (case-sensitive).
enable_granular_consent אופציונלי, ברירת המחדל היא true. אם המדיניות מוגדרת לערך false, הרשאות מפורטות יותר לחשבון Google יושבתו עבור מזהי לקוחות ב-OAuth שנוצרו לפני 2019.אם גם enable_granular_consent וגם enable_serial_consent יוגדרו, רק הערך של enable_granular_consent ייכנס לתוקף והמערכת תתעלם מהערך של enable_serial_consent.

אין השפעה על מזהים חדשים יותר של לקוחות OAuth, כי תמיד מופעלות עבורם הרשאות מפורטות יותר.
enable_serial_consent הוצא משימוש. במקומה יש להשתמש במדיניות enable_granular_consent. יש לכך אותה השפעה כמו enable_granular_consent. אפליקציות קיימות שמשתמשות ב-enable_serial_consent יכולות להמשיך לעשות זאת, אבל כדאי לעדכן את הקוד כך שישתמש ב-enable_granular_consent בעדכון הבא של האפליקציה.
login_hint אפשרות. אם האפליקציה שלך יודעת איזה משתמש צריך לאשר את הבקשה, היא יכולה להשתמש בנכס הזה כדי לספק ל-Google רמז להתחברות. כשהפעולה תושלם, המערכת תדלג על בחירת החשבון. ערך השדה sub של כתובת האימייל או של האסימון המזהה של משתמש היעד. למידע נוסף, ניתן לעיין בשדה login_hint בתיעוד של OpenID Connect.
state אפשרות. לא מומלץ. מציינת כל ערך מחרוזת שבו האפליקציה משתמשת כדי לשמור על המצב בין בקשת ההרשאה לבין התגובה של שרת ההרשאות.

סוג הנתונים: TokenResponse

אובייקט JavaScript מסוג TokenResponse יועבר אל שיטת הקריאה החוזרת (callback) בממשק המשתמש הקופץ.

בטבלה הבאה מפורטים המאפיינים של סוג הנתונים TokenResponse.

תכונות
access_token אסימון הגישה של תגובה מוצלחת של אסימון.
expires_in משך החיים בשניות של אסימון הגישה.
hd הדומיין המתארח שאליו שייך המשתמש המחובר.
prompt ערך הבקשה ששימש מתוך רשימת הערכים האפשריים שצוינה על ידי TokenClientConfig או OverridableTokenClientConfig.
token_type סוג האסימון שהונפק.
scope רשימה מופרדת ברווחים של היקפים שאושרו על ידי המשתמש.
state ערך המחרוזת שבו האפליקציה שלך משתמשת כדי לשמור על המצב בין בקשת ההרשאה שלך לבין התגובה.
error קוד שגיאת ASCII יחיד.
error_description טקסט ASCII קריא לאנשים שמספק מידע נוסף, המשמש לסיוע למפתח הלקוח להבין את השגיאה שאירעה.
error_uri URI המזהה דף אינטרנט קריא (לבני אדם) ומידע על השגיאה, המשמש כדי לספק למפתח הלקוח מידע נוסף על השגיאה.

שיטה: google.accounts.oauth2.hasGrantedAllScopes

הפונקציה בודקת אם המשתמש העניק למשתמש את כל ההיקפים או ההיקפים שצוינו.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
ארגומנטים
tokenResponse TokenResponse חובה. אובייקט TokenResponse.
firstScope מחרוזת חובה. ההיקף שצריך לבדוק.
restScopes מחרוזת[] אפשרות. היקפים נוספים לבדיקה.
החזרות
boolean הערך הוא True אם כל ההיקפים הוענקו.

שיטה: google.accounts.oauth2.hasGrantedAnyScope

הפונקציה בודקת אם המשתמש נתן הרשאה מההיקפים או מההיקפים שצוינו.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
ארגומנטים
tokenResponse TokenResponse חובה. אובייקט TokenResponse.
firstScope מחרוזת חובה. ההיקף שצריך לבדוק.
restScopes מחרוזת[] אפשרות. היקפים נוספים לבדיקה.
החזרות
boolean הערך הוא True אם אחד מההיקפים הוענק.

שיטה: google.accounts.oauth2.revoke

השיטה revoke מבטלת את כל ההיקפים שהמשתמש העניק לאפליקציה. נדרש אסימון גישה תקף כדי לבטל את ההרשאה.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
ארגומנטים
accessToken מחרוזת חובה. אסימון גישה חוקי.
callback פונקציה אפשרות. handler של RevocationResponse.

סוג הנתונים: RevocationResponse

אובייקט JavaScript מסוג RevocationResponse יועבר לשיטת הקריאה החוזרת שלך.

בטבלה הבאה מפורטים המאפיינים של סוג הנתונים RevocationResponse.

תכונות
successful בוליאני. true ב- הצליחו, false בכישלון.
error מחרוזת. הצלחה לא מוגדרת. קוד שגיאת ASCII יחיד. זה כולל, בין היתר, את קודי השגיאה הרגילים של OAuth 2.0. שגיאות נפוצות בשיטת revoke:
  • invalid_token – האסימון כבר לא בתוקף או בוטל לפני הקריאה לשיטת revoke. ברוב המקרים, אפשר לראות שהמענק המשויך ל-accessToken מבוטל.
  • invalid_request – לא ניתן לבטל את האסימון. צריך לוודא ש-accessToken הוא פרטי כניסה תקפים של Google OAuth 2.0.
error_description מחרוזת. הצלחה לא מוגדרת. טקסט ASCII קריא לאנשים מספק מידע נוסף על המאפיין error. המפתחים יכולים להשתמש בהגדרה הזו כדי להבין טוב יותר את השגיאה שאירעה. המחרוזת error_description היא באנגלית בלבד. לגבי השגיאות הנפוצות שרשומות ב-error, צריך לבצע את הפעולות הבאות ב-error_description:
  • invalid_token – תוקף האסימון פג או בוטל.
  • invalid_request – לא ניתן לבטל את האסימון.