הפניית API של כניסה באמצעות חשבון Google

בדף ההפניה הזה מתוארת הכניסה של JavaScript API. תוכלו להשתמש ב-API הזה כדי להציג בדפי האינטרנט שלכם את הבקשה בהקשה אחת או את הלחצן 'כניסה באמצעות חשבון Google'.

שיטה: google.accounts.id.firstize

השיטה google.accounts.id.initialize מפעילה את הלקוח 'כניסה באמצעות חשבון Google' על סמך אובייקט התצורה. דוגמת הקוד הבאה של השיטה:

google.accounts.id.initialize(IdConfiguration)

הקוד לדוגמה הבא מטמיע את השיטה google.accounts.id.initialize באמצעות הפונקציה onload:

<script>
  window.onload = function () {
    google.accounts.id.initialize({
      client_id: 'YOUR_GOOGLE_CLIENT_ID',
      callback: handleCredentialResponse
    });
    google.accounts.id.prompt();
  };
</script>

השיטה google.accounts.id.initialize יוצרת מכונת לקוח מסוג 'כניסה באמצעות חשבון Google' שאפשר להשתמש בה באופן מרומז בכל המודולים באותו דף אינטרנט.

  • צריך להפעיל את השיטה google.accounts.id.initialize רק פעם אחת, גם אם משתמשים בכמה מודולים (כמו 'הקשה אחת', לחצן 'מותאם אישית', ביטול וכו') באותו דף אינטרנט.
  • אם תבצעו קריאה ל-method google.accounts.id.initialize כמה פעמים, המערכת תשמור את ההגדרות בשיחה האחרונה ותשתמש בהן.

בפועל, מאפסים את ההגדרות האישיות בכל פעם שמפעילים את השיטה google.accounts.id.initialize, וכל השיטות הבאות באותו דף אינטרנט משתמשות מיד בהגדרות החדשות.

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

בטבלה הבאה מפורטים השדות והתיאורים של סוג הנתונים IdConfiguration:

שעון שדה
client_id מזהה הלקוח של האפליקציה
auto_select הפעלת בחירה אוטומטית.
callback פונקציית JavaScript שמטפלת באסימונים מזהים. התכונה 'הקשה על Google One' והלחצן 'כניסה באמצעות חשבון Google' popup משתמשים במאפיין הזה.
login_uri כתובת ה-URL של נקודת הקצה להתחברות. הלחצן 'כניסה באמצעות חשבון Google' redirect UX משתמש במאפיין הזה.
native_callback פונקציית JavaScript המטפלת בפרטי כניסה של סיסמה.
cancel_on_tap_outside ביטול ההנחיה אם המשתמש לוחץ מחוץ להנחיה.
prompt_parent_id מזהה ה-DOM של רכיב מאגר ההנחיות של One Tap
nonce מחרוזת אקראית לאסימונים מזהים
context הכותרת והמילים בהודעה 'הקשה אחת'
state_cookie_domain כדי להפעיל את One Tap בדומיין הראשי ובתת-הדומיינים שלו, צריך להעביר את הדומיין ההורה לשדה הזה כדי שניתן יהיה להשתמש בקובץ cookie משותף אחד.
ux_mode תהליך חוויית המשתמש בלחצן 'כניסה באמצעות חשבון Google'
allowed_parent_origin המקורות שמורשים להטמיע את iframe הביניים. אם השדה הזה נמצא, הפקודה One Tap פועלת במצב ביניים של iframe.
intermediate_iframe_close_callback ביטול התנהגות ברירת המחדל של iframe ברמת ביניים כשמשתמשים סוגרים ידנית את הקשה אחת.
itp_support מפעיל חוויית משתמש משודרגת בהקשה אחת בדפדפני ITP.
login_hint ניתן לספק רמז למשתמש כדי לדלג על בחירת החשבון.
hd הגבילו את בחירת החשבונות לפי דומיין.
use_fedcm_for_prompt הדפדפן יכול לשלוט בבקשות הכניסה של משתמשים ולתווך את תהליך הכניסה בין האתר שלך ל-Google.

client_id

השדה הזה מכיל את מזהה הלקוח של האפליקציה, שנמצא ונוצר במסוף Google Cloud. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת כן client_id: "CLIENT_ID.apps.googleusercontent.com"

auto_select

השדה הזה קובע אם אסימון מזהה מוחזר באופן אוטומטי ללא כל אינטראקציה של משתמש, כשיש רק סשן אחד ב-Google שאושר קודם לאפליקציה. ערך ברירת המחדל הוא false. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
boolean אופציונלי auto_select: true

קריאה חוזרת (callback)

השדה הזה הוא פונקציית JavaScript שמטפלת באסימון המזהה שהוחזר מההנחיה One Tap או מהחלון הקופץ. המאפיין הזה נדרש אם משתמשים במצב חוויית משתמש בהקשה על Google One או בלחצן 'כניסה באמצעות חשבון Google' popup. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
פונקציה נדרשת להקשה אחת ולמצב חוויית המשתמש popup callback: handleResponse

login_uri

המאפיין הזה הוא ה-URI של נקודת הקצה להתחברות.

הערך צריך להתאים במדויק לאחד ממזהי ה-URI המורשים להפניה אוטומטית בלקוח OAuth 2.0, שהגדרתם במסוף Google Cloud, והוא צריך לעמוד בכללי האימות של URI של הפניה אוטומטית.

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

התגובה של פרטי הכניסה לאסימון המזהה מתפרסמת בנקודת הקצה להתחברות כשמשתמש לוחץ על הלחצן 'כניסה באמצעות חשבון Google' ומפנה לכתובת URL אחרת את מצב חוויית המשתמש.

מידע נוסף זמין בטבלה הבאה:

סוג אופציונלי דוגמה
כתובת URL ברירת המחדל היא ה-URI של הדף הנוכחי, או הערך שציינתם.
יש להשתמש רק כשמוגדר ux_mode: "redirect".
login_uri="https://www.example.com/login"

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

דוגמה לבקשה לנקודת הקצה להתחברות:

POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded

credential=ID_TOKEN

native_callback

השדה הזה הוא השם של פונקציית ה-JavaScript שמטפלת בפרטי הכניסה לסיסמה שמוחזרים ממנהל פרטי הכניסה המקורי של הדפדפן. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
פונקציה אופציונלי native_callback: handleResponse

cancel_on_tap_outside

השדה הזה קובע אם לבטל את הבקשה בהקשה אחת, במקרה שמשתמש לוחץ מחוץ להודעה. ערך ברירת המחדל הוא true. אפשר להשבית אותה אם מגדירים את הערך false. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
boolean אופציונלי cancel_on_tap_outside: false

prompt_parent_id

המאפיין הזה מגדיר את מזהה ה-DOM של רכיב מאגר התגים. אם המדיניות לא מוגדרת, ההנחיה הקשה אחת תוצג בפינה השמאלית העליונה של החלון. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי prompt_parent_id: 'parent_id'

צופן חד-פעמי (nonce)

השדה הזה הוא מחרוזת אקראית שמשמשת את האסימון המזהה כדי למנוע התקפות שליחה מחדש. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי nonce: "biaqbm70g23"

אורך ה-Nonce מוגבל לגודל ה-JWT המקסימלי שנתמך בסביבה שלכם ולמגבלות הגודל של ה-HTTP של הדפדפן והשרת.

context

השדה הזה משנה את הטקסט של הכותרת וההודעות בהנחיה 'הקשה אחת'. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי context: "use"

בטבלה הבאה מפורטים כל ההקשרים הזמינים והתיאורים שלהם:

הקשר
signin 'כניסה באמצעות חשבון Google'
signup "הרשמה באמצעות Google"
use "שימוש עם Google"

אם אתם צריכים להציג את One Tap בדומיין ההורה ובתת-הדומיינים שלו, צריך להעביר את הדומיין ההורה לשדה הזה כדי להשתמש בקובץ cookie אחד של מצב משותף. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי state_cookie_domain: "example.com"

ux_mode

בשדה הזה מגדירים את תהליך חוויית המשתמש כשמשתמשים בלחצן 'כניסה באמצעות חשבון Google'. ערך ברירת המחדל הוא popup. למאפיין הזה אין השפעה על חוויית המשתמש של OneTap. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי ux_mode: "redirect"

בטבלה הבאה מפורטים מצבי חוויית המשתמש הזמינים והתיאורים שלהם.

מצב UX
popup מבצע תהליך חוויית משתמש של כניסה בחלון קופץ.
redirect מבצע זרימת חוויית משתמש של כניסה על ידי הפניה מחדש של דף מלא.

allowed_parent_origin

המקורות שמורשים להטמיע את iframe הביניים. הקשה אחת פועלת במצב ביניים של iframe, אם השדה הזה מופיע. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזות או מערך מחרוזות אופציונלי allowed_parent_origin: "https://example.com"

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

סוגי ערכים
string ה-URI של דומיין אחד. "https://example.com"
string array מערך של מזהי URI של דומיינים. ["https://news.example.com", "https://local.example.com"]

יש תמיכה גם בקידומות של תווים כלליים לחיפוש. לדוגמה, "https://*.example.com" תואם ל-example.com ולתתי-הדומיינים שלו בכל הרמות (למשל news.example.com, login.news.example.com). דברים שחשוב לזכור כשמשתמשים בתווים כלליים לחיפוש:

  • מחרוזות תבנית לא יכולות להיות מורכבות רק מתו כללי לחיפוש ומדומיין ברמה עליונה. לדוגמה https://.com ו-https://.co.uk לא חוקיים; כפי שצוין למעלה, "https://.example.com" תואם את example.com ותת-הדומיינים שלו. אפשר גם להשתמש במערך כדי לייצג 2 דומיינים שונים. לדוגמה, ["https://example1.com", "https://.example2.com"] תואם לדומיינים example1.com, example2.com ותת-הדומיינים של example2.com
  • דומיינים עם תווים כלליים לחיפוש חייבים להתחיל בסכמת https:// מאובטחת, ולכן "*.example.com" נחשב לא חוקי.

אם הערך של השדה allowed_parent_origin לא חוקי, האתחול בהקשה אחת של מצב ה-iframe ברמת הביניים ייכשל ותיפסק.

intermediate_iframe_close_callback

ביטול התנהגות ברירת המחדל של iframe מתווכת כשמשתמשים סוגרים ידנית את One Tap על ידי הקשה על הלחצן 'X' בממשק המשתמש של הקשה אחת. ברירת המחדל היא להסיר מיד את ה-iframe הביניים מה-DOM.

השדה intermediate_iframe_close_callback פועל רק במצב ביניים של iframe. היא משפיעה רק על ה-iframe הביניים, במקום על ה-iframe One Tap. ממשק המשתמש בהקשה אחת מוסר לפני שמפעילים את הקריאה החוזרת.

סוג חובה דוגמה
פונקציה אופציונלי intermediate_iframe_close_callback: logBeforeClose

itp_support

השדה הזה קובע אם צריך להפעיל את חוויית המשתמש המשודרגת ב-One Tap בדפדפנים שתומכים במניעת מעקב חכמה (ITP). ערך ברירת המחדל הוא false. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
boolean אופציונלי itp_support: true

login_hint

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

למידע נוסף, עיינו בשדה login_hint במסמכי התיעוד של OpenID Connect.

סוג חובה דוגמה
מחרוזת, כתובת אימייל או הערך מהשדה sub של אסימון מזהה. אופציונלי login_hint: 'elisa.beckett@gmail.com'

hd

אם למשתמש יש כמה חשבונות והוא צריך להיכנס רק באמצעות חשבון Workspace שלו, הוא יכול לשמש כדי לספק ל-Google רמז לשם דומיין. כשהפעולה תושלם, חשבונות המשתמשים שיוצגו במהלך בחירת החשבון יוגבלו לדומיין שצוין. ערך של תו כללי לחיפוש: * כולל רק חשבונות Workspace למשתמש, ולא כולל חשבונות של צרכנים (user@gmail.com) במהלך בחירת החשבון.

למידע נוסף, ראה את השדה hd במסמכי התיעוד של OpenID Connect.

סוג חובה דוגמה
מחרוזת. שם דומיין שמוגדר במלואו או *. אופציונלי hd: '*'

use_fedcm_for_prompt

מאפשרת לדפדפן לשלוט בבקשות הכניסה של משתמשים ולתווך את תהליך הכניסה בין האתר שלכם ל-Google. ברירת המחדל היא FALSE. למידע נוסף, ראו העברה ל-FedCM.

סוג חובה דוגמה
boolean אופציונלי use_fedcm_for_prompt: true

שיטה: google.accounts.id.prompt

השיטה google.accounts.id.prompt מציגה את הבקשה בהקשה אחת או את מנהל פרטי הכניסה המקוריים של הדפדפן, אחרי הפעלת השיטה initialize(). קטע הקוד לדוגמה הבא של השיטה:

 google.accounts.id.prompt(/**
 @type{(function(!PromptMomentNotification):void)=} */ momentListener)

בדרך כלל, מתבצעת קריאה ל-method prompt() בזמן טעינת הדף. בגלל סטטוס הסשן והגדרות המשתמש בצד של Google, יכול להיות שממשק המשתמש של ההצעה לפעולה בהקשה אחת לא יוצג. כדי לקבל התראות על הסטטוס של ממשק המשתמש ברגעים שונים, צריך להעביר פונקציה כדי לקבל התראות על סטטוס ממשק המשתמש.

התראות מופעלות ברגעים הבאים:

  • רגע לתצוגה: האירוע הזה מתרחש אחרי קריאה לשיטה prompt(). ההתראה מכילה ערך בוליאני שמציין אם ממשק המשתמש מוצג או לא.
  • רגע שדילגת עליו: מצב זה קורה כאשר הבקשה בהקשה אחת נסגרת על ידי ביטול אוטומטי, ביטול ידני או כש-Google לא מצליחה להנפיק פרטי כניסה, למשל כשסשן שנבחר התנתק מ-Google.

    במקרים כאלה, מומלץ להמשיך לספקי הזהויות הבאים, אם יש כאלה.

  • רגע שנסגר: מצב כזה קורה כש-Google מאחזרת פרטי כניסה או כשמשתמש רוצה להפסיק את תהליך אחזור פרטי הכניסה. לדוגמה, כשהמשתמש מתחיל להזין את שם המשתמש והסיסמה בתיבת הדו-שיח של ההתחברות, אפשר לקרוא לשיטה google.accounts.id.cancel() כדי לסגור את ההודעה בהקשה אחת ולהפעיל רגע שנסגר.

הקוד לדוגמה הבא מיישם את התכונה 'רגע שדילגת עליו':

<script>
  window.onload = function () {
    google.accounts.id.initialize(...);
    google.accounts.id.prompt((notification) => {
      if (notification.isNotDisplayed() || notification.isSkippedMoment()) {
        // continue with another identity provider.
      }
    });
  };
</script>

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

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

שיטה
isDisplayMoment() האם ההתראה הזו היא זמנית לצורך תצוגה?

הערה: כש-FedCM מופעל, ההתראה הזו לא מופעלת. למידע נוסף, אפשר לעיין בדף העברה ל-FedCM.
isDisplayed() האם ההתראה הזו מופיעה זמנית במסך, וממשק המשתמש מוצג?

הערה: כש-FedCM מופעל, ההתראה הזו לא מופעלת. למידע נוסף, אפשר לעיין בדף העברה ל-FedCM.
isNotDisplayed() האם ההתראה מופיעה כרגע בתצוגה, וממשק המשתמש לא מוצג?

הערה: כש-FedCM מופעל, ההתראה הזו לא מופעלת. למידע נוסף, אפשר לעיין בדף העברה ל-FedCM.
getNotDisplayedReason()

הסיבה המפורטת לכך שממשק המשתמש לא מוצג. אלה הערכים האפשריים:

  • browser_not_supported
  • invalid_client
  • missing_client_id
  • opt_out_or_no_session
  • secure_http_required
  • suppressed_by_user
  • unregistered_origin
  • unknown_reason
הערה: כש-FedCM מופעל , השיטה הזו לא נתמכת. למידע נוסף, אפשר לעיין בדף העברה ל-FedCM.
isSkippedMoment() האם ההתראה הזו מוצגת למשך רגע שדילגת עליו?
getSkippedReason()

הסיבה המפורטת לרגע שעליו דילגת. אלה הערכים האפשריים:

  • auto_cancel
  • user_cancel
  • tap_outside
  • issuing_failed
הערה: כש-FedCM מופעל , השיטה הזו לא נתמכת. למידע נוסף, אפשר לעיין בדף העברה ל-FedCM.
isDismissedMoment() האם ההתראה הזו קשורה לרגע שנסגר?
getDismissedReason()

הסיבה המפורטת לסגירה. אלה הערכים האפשריים:

  • credential_returned
  • cancel_called
  • flow_restarted
getMomentType()

החזרת מחרוזת עבור סוג הרגע. אלה הערכים האפשריים:

  • display
  • skipped
  • dismissed

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

כשהפונקציה callback מופעלת, אובייקט CredentialResponse מועבר בתור הפרמטר. הטבלה הבאה מציגה את השדות שנכללים באובייקט התגובה של פרטי הכניסה:

שעון שדה
credential השדה הזה הוא אסימון המזהה שהוחזר.
select_by השדה הזה קובע את אופן הבחירה של פרטי הכניסה.
state השדה הזה מוגדר רק כשמשתמש לוחץ על לחצן של 'כניסה באמצעות חשבון Google' כדי להיכנס, והמאפיין state של הלחצן מצוין.

פרטי כניסה לחשבון

השדה הזה הוא האסימון המזהה כמחרוזת של אסימון אינטרנט מסוג JSON (JWT) בקידוד base64.

אחרי הפענוח, ה-JWT נראה כמו הדוגמה הבאה:

header
{
  "alg": "RS256",
  "kid": "f05415b13acb9590f70df862765c655f5a7a019e", // JWT signature
  "typ": "JWT"
}
payload
{
  "iss": "https://accounts.google.com", // The JWT's issuer
  "nbf":  161803398874,
  "aud": "314159265-pi.apps.googleusercontent.com", // Your server's client ID
  "sub": "3141592653589793238", // The unique ID of the user's Google Account
  "hd": "gmail.com", // If present, the host domain of the user's GSuite email address
  "email": "elisa.g.beckett@gmail.com", // The user's email address
  "email_verified": true, // true, if Google has verified the email address
  "azp": "314159265-pi.apps.googleusercontent.com",
  "name": "Elisa Beckett",
                            // If present, a URL to user's profile picture
  "picture": "https://lh3.googleusercontent.com/a-/e2718281828459045235360uler",
  "given_name": "Elisa",
  "family_name": "Beckett",
  "iat": 1596474000, // Unix timestamp of the assertion's creation time
  "exp": 1596477600, // Unix timestamp of the assertion's expiration time
  "jti": "abc161803398874def"
}

השדה sub הוא מזהה ייחודי גלובלי של חשבון Google. יש להשתמש בשדה sub כמזהה של המשתמש בלבד, מכיוון שהוא ייחודי בכל חשבונות Google ולא נעשה בו שימוש חוזר. לא להשתמש בכתובת אימייל כמזהה, כי לחשבון Google יכולות להיות כמה כתובות אימייל בנקודות זמן שונות.

בעזרת השדות email, email_verified ו-hd אפשר לקבוע אם Google מארחת כתובת אימייל ואם היא מהימנה. במקרים שבהם ל-Google יש סמכות, נקבע שהמשתמש הוא הבעלים הלגיטימי של החשבון.

מקרים שבהם Google היא גורם מוסמך:

  • לשירות email יש סיומת @gmail.com. זהו חשבון Gmail.
  • email_verified הוא TRUE ו-hd מוגדר, זהו חשבון Google Workspace.

משתמשים יכולים להירשם לחשבונות Google בלי להשתמש ב-Gmail או ב-Google Workspace. אם הסיומת email לא מכילה את הסיומת @gmail.com, והמאפיין hd חסר, Google לא מורשית. מומלץ להשתמש בסיסמה או בשיטות אחרות לאימות המשתמש כדי לאמת את המשתמש. email_verfied יכול גם להיות נכון כי Google אימתה לראשונה את המשתמש כשחשבון Google נוצר, אבל ייתכן שהבעלות על חשבון האימייל של הצד השלישי השתנתה מאז.

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

select_by

בטבלה הבאה מפורטים הערכים האפשריים בשדה select_by. סוג הלחצן המשמש יחד עם הסשן ומצב ההסכמה משמשים להגדרת הערך,

  • המשתמש לחץ על הלחצן 'הקשה אחת' או על 'כניסה באמצעות חשבון Google', או השתמש בתהליך של כניסה אוטומטית ללא מגע.

  • נמצאה פעילות קיימת באתר, או שהמשתמש בחר ונכנס לחשבון Google כדי ליצור פעילות חדשה באתר.

  • לפני שתשתפו עם האפליקציה את פרטי הכניסה של אסימון מזהה, המשתמש

    • לחצו על הלחצן 'אישור' כדי להעניק את הסכמתם לשתף פרטי כניסה, או
    • הסכימו בעבר והשתמשו ב'בחירת חשבון' כדי לבחור חשבון Google.

הערך בשדה הזה מוגדר לאחד מהסוגים הבאים:

תמורה לכסף תיאור
auto כניסה אוטומטית של משתמש עם סשן קיים שהסכים בעבר לשתף פרטי כניסה. רלוונטי רק לדפדפנים שאינם נתמכים על ידי FedCM.
user משתמש שיש לו סשן קיים שהסכים בעבר לחץ על הלחצן 'המשך בהקשה אחת' כדי לשתף את פרטי הכניסה. רלוונטי רק לדפדפנים שאינם נתמכים על ידי FedCM.
fedcm אחד מהמשתמשים לחץ על הלחצן 'המשך בתור' בהקשה אחת כדי לשתף את פרטי הכניסה באמצעות FedCM. רלוונטי רק לדפדפנים נתמכים של FedCM.
fedcm_auto כניסה אוטומטית של משתמש עם סשן קיים שהסכים בעבר לשתף פרטי כניסה באמצעות FedCM One Tap. רלוונטי רק לדפדפנים נתמכים של FedCM.
user_1tap משתמש שיש לו סשן קיים לחץ על הלחצן 'המשך בהקשה אחת' כדי להעניק הסכמה ולשתף את פרטי הכניסה. רלוונטי רק ל-Chrome מגרסה 75 ואילך.
user_2tap משתמש שאין לו סשן קיים לחץ על הלחצן 'המשך בהקשה אחת' כדי לבחור חשבון, ואז לחץ על הלחצן 'אישור' בחלון קופץ כדי להביע הסכמה ולשתף פרטי כניסה. רלוונטי לדפדפנים שאינם מבוססים על Chromium.
btn משתמש שיש לו סשן קיים שהסכים בעבר לחץ על הלחצן 'כניסה באמצעות חשבון Google' ובחר חשבון Google מתוך 'בחירת חשבון' כדי לשתף את פרטי הכניסה.
btn_confirm משתמש שיש לו סשן קיים לחץ על הלחצן 'כניסה באמצעות חשבון Google' ולחץ על הלחצן 'אישור' כדי להביע הסכמה ולשתף את פרטי הכניסה.
btn_add_session משתמש ללא סשן קיים שהסכים בעבר לחץ על הלחצן 'כניסה באמצעות חשבון Google' כדי לבחור חשבון Google ולשתף את פרטי הכניסה.
btn_confirm_add_session משתמש שאין לו סשן קיים לחץ קודם על הלחצן 'כניסה באמצעות חשבון Google' כדי לבחור חשבון Google, ואז לחץ על הלחצן 'אישור' כדי להביע הסכמה ולשתף פרטי כניסה.

state

השדה הזה מוגדר רק כשמשתמש לוחץ על לחצן 'כניסה באמצעות חשבון Google' כדי להיכנס, ומצוין המאפיין state של הלחצן. הערך בשדה הזה זהה לערך שציינתם במאפיין state של הלחצן.

ניתן לעבד באותו דף לחצנים מרובים לכניסה באמצעות חשבון Google, כך שלכל לחצן יש מחרוזת ייחודית. לכן, ניתן להשתמש בשדה state כדי לזהות על איזה לחצן לחץ המשתמש כדי להיכנס.

שיטה: google.accounts.id.renderButton

השיטה google.accounts.id.renderButton מעבדת את הלחצן 'כניסה באמצעות חשבון Google' בדפי האינטרנט.

קטע הקוד לדוגמה הבא של השיטה:

google.accounts.id.renderButton(
      /** @type{!HTMLElement} */ parent,
      /** @type{!GsiButtonConfiguration} */ options
    )

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

בטבלה הבאה מפורטים השדות והתיאורים של סוג הנתונים GsiButtonConfiguration:

מאפיין
type סוג הלחצן: סמל או לחצן רגיל.
theme עיצוב הלחצן. לדוגמה, filled_blue או filled_black.
size גודל הלחצן. לדוגמה, קטן או גדול.
text הטקסט של הלחצן. לדוגמה, "כניסה באמצעות חשבון Google" או "הרשמה באמצעות Google".
shape צורת הלחצן. לדוגמה: מלבן או מעגלי.
logo_alignment יישור הלוגו של Google: לשמאל או למרכז.
width רוחב הלחצן, בפיקסלים.
locale אם היא מוגדרת, שפת הלחצן עוברת רינדור.
click_listener אם המדיניות מוגדרת, הפונקציה הזו מפעילה את הפונקציה אחרי לחיצה על הלחצן 'כניסה באמצעות חשבון Google'.
state אם היא מוגדרת, המחרוזת הזו תוחזר עם האסימון המזהה.

סוגי מאפיינים

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

סוג

סוג הלחצן. ערך ברירת המחדל הוא standard.

מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת כן type: "icon"

בטבלה הבאה מפורטים סוגי הלחצנים הזמינים והתיאורים שלהם:

סוג
standard
לחצן עם טקסט או מידע מותאם אישית.
icon
לחצן סמל ללא טקסט.

עיצוב

עיצוב הלחצן. ערך ברירת המחדל הוא outline. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי theme: "filled_blue"

בטבלה הבאה מפורטים הנושאים הזמינים והתיאורים שלהם:

עיצוב
outline
עיצוב סטנדרטי של לחצנים.
filled_blue
עיצוב לחצן בצבע כחול.
filled_black
עיצוב לחצנים מלא בשחור.

size

גודל הלחצן. ערך ברירת המחדל הוא large. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי size: "small"

בטבלה הבאה מפורטים גודלי הלחצנים הזמינים והתיאורים שלהם:

גודל
large
לחצן רגיל גדול לחצן סמל גדול לחצן גדול ומותאם אישית
לחצן גדול.
medium
לחצן בינוני רגיל לחצן סמל בינוני
לחצן בינוני.
small
לחצן קטן לחצן סמל קטן
לחצן קטן.

טקסט

הטקסט של הלחצן. ערך ברירת המחדל הוא signin_with. אין הבדלים חזותיים לטקסט של לחצני הסמלים שיש להם מאפייני text שונים. היוצא מן הכלל היחיד הוא כשהטקסט נקרא לצורך נגישות המסך.

מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי text: "signup_with"

בטבלה הבאה מפורטים כל הטקסטים הזמינים ללחצנים והתיאורים שלהם:

טקסט
signin_with
הטקסט של הלחצן הוא 'כניסה באמצעות חשבון Google'.
signup_with
הטקסט של הלחצן הוא 'הרשמה באמצעות Google'.
continue_with
הטקסט של הלחצן הוא 'המשך עם Google'.
signin
הטקסט של הלחצן הוא 'כניסה'.

צורה

צורת הלחצן. ערך ברירת המחדל הוא rectangular. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי shape: "rectangular"

הטבלה הבאה מפרטת את צורות הלחצנים הזמינות והתיאורים שלהן:

צורה
rectangular
הלחצן המלבני. אם הלחצן משמש עבור סוג הלחצן icon, הוא זהה לערך הלחצן square.
pill
הלחצן בצורת גלולה. אם הלחצן משמש עבור סוג הלחצן icon, הוא זהה לערך הלחצן circle.
circle
לחצן בצורת עיגול. אם הלחצן משמש עבור סוג הלחצן standard, הוא זהה לערך הלחצן pill.
square
לחצן בצורת ריבוע. אם הלחצן משמש עבור סוג הלחצן standard, הוא זהה לערך הלחצן rectangular.

logo_alignment

יישור הלוגו של Google. ערך ברירת המחדל הוא left. המאפיין הזה רלוונטי רק ללחצן standard. מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי logo_alignment: "center"

הטבלה הבאה מפרטת את היישורים הזמינים ואת התיאורים שלהם:

logo_alignment
left
יישור הסמל של Google לשמאל.
center
יישור הלוגו של Google למרכז.

רוחב

רוחב הלחצן המינימלי, בפיקסלים. הרוחב המקסימלי הוא 400 פיקסלים.

מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי width: "400"

שילוב של שפה ואזור

זה שינוי אופציונלי. להציג טקסט של הלחצן לפי הלוקאל שצוין, אחרת ברירת המחדל היא לפי הגדרות הדפדפן או חשבון Google של המשתמש. מוסיפים את הפרמטר hl ואת קוד השפה להוראה של src כשטוענים את הספרייה, לדוגמה: gsi/client?hl=<iso-639-code>.

אם היא לא מוגדרת, נעשה שימוש בלוקאל שמוגדר כברירת מחדל בדפדפן או בהעדפה של משתמש הסשן ב-Google. לכן, משתמשים שונים עשויים לראות גרסאות שונות של לחצנים שמותאמים לשוק המקומי, וגם בגדלים שונים.

מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי locale: "zh_CN"

click_listener

אפשר להגדיר קריאה לפונקציה של JavaScript כשמשתמש לוחץ על הלחצן 'כניסה באמצעות חשבון Google' באמצעות המאפיין click_listener.

  google.accounts.id.renderButton(document.getElementById("signinDiv"), {
      theme: 'outline',
      size: 'large',
      click_listener: onClickHandler
    });

  
  function onClickHandler(){
    console.log("Sign in with Google button clicked...")
  }
  

בדוגמה זו, ההודעה Sign in with Google button clicks... (כניסה באמצעות לחצן הכניסה באמצעות חשבון Google) תתועד במסוף בעת לחיצה על הלחצן 'כניסה באמצעות חשבון Google'.

state

אופציונלי, מכיוון שניתן לעבד מספר לחצנים לכניסה באמצעות חשבון Google באותו דף, ניתן לך להקצות מחרוזת ייחודית לכל לחצן. אותה מחרוזת תחזור יחד עם האסימון המזהה, כך שתוכלו לזהות על איזה לחצן המשתמש לחץ כדי להיכנס.

מידע נוסף זמין בטבלה הבאה:

סוג חובה דוגמה
מחרוזת אופציונלי data-state="button 1"

סוג הנתונים: פרטי כניסה

כשהפונקציה native_callback מופעלת, אובייקט Credential מועבר בתור הפרמטר. הטבלה הבאה מציגה את השדות שנכללים באובייקט:

שעון שדה
id מזהה את המשתמש.
password הסיסמה

שיטה: google.accounts.id.disableAutoSelect

כשהמשתמש יוצא מהאתר, צריך לקרוא לשיטה google.accounts.id.disableAutoSelect כדי לתעד את הסטטוס בקובצי cookie. כך נמנעת לולאה דלילה של חוויית המשתמש. ראה את קטע הקוד הבא של השיטה:

google.accounts.id.disableAutoSelect()

דוגמת הקוד הבאה מטמיעה את השיטה google.accounts.id.disableAutoSelect עם הפונקציה onSignout():

<script>
  function onSignout() {
    google.accounts.id.disableAutoSelect();
  }
</script>

Method: google.accounts.id.storeCredential

השיטה הזו היא wrapper עבור השיטה store() של ממשק ה-API של מנהל פרטי הכניסה המקורי של הדפדפן. לכן, ניתן להשתמש בו רק כדי לאחסן פרטי כניסה לסיסמה. קטע הקוד לדוגמה הבא של השיטה:

google.accounts.id.storeCredential(Credential, callback)

דוגמת הקוד הבאה מטמיעה את השיטה google.accounts.id.storeCredential עם הפונקציה onSignIn():

<script>
  function onSignIn() {
    let cred = {id: '...', password: '...'};
    google.accounts.id.storeCredential(cred);
  }
</script>

שיטה: google.accounts.id.cancel

אפשר לבטל את התהליך בהקשה אחת, אם מסירים את הבקשה מה-DOM של הצד הנסמך. אם פרטי הכניסה כבר נבחרו, המערכת מתעלמת מפעולת הביטול. לפניכם דוגמת הקוד של השיטה:

google.accounts.id.cancel()

הקוד לדוגמה הבא מטמיע את השיטה google.accounts.id.cancel() באמצעות הפונקציה onNextButtonClicked():

<script>
  function onNextButtonClicked() {
    google.accounts.id.cancel();
    showPasswordPage();
  }
</script>

קריאה חוזרת לטעינת ספרייה: onGoogleLibraryLoad

אפשר לרשום קריאה חוזרת (callback) של onGoogleLibraryLoad. מתקבלת הודעה לאחר שספריית ה-JavaScript 'כניסה באמצעות חשבון Google' נטענת:

window.onGoogleLibraryLoad = () => {
    ...
};

הקריאה החוזרת (callback) הזו היא רק קיצור דרך להתקשרות חזרה של window.onload. אין הבדלים בהתנהגות.

הקוד לדוגמה הבא מטמיע קריאה חוזרת של onGoogleLibraryLoad:

<script>
  window.onGoogleLibraryLoad = () => {
   google.accounts.id.initialize({
     ...
   });
   google.accounts.id.prompt();
  };
</script>

שיטה: google.accounts.id.revock

השיטה google.accounts.id.revoke מבטלת את הרשאת ה-OAuth ששימשה לשיתוף האסימון המזהה של המשתמש שצוין. מעיינים בקטע הקוד הבא של השיטה: javascript google.accounts.id.revoke(login_hint, callback)

פרמטר סוג תיאור
login_hint מחרוזת כתובת האימייל או המזהה הייחודי של חשבון Google של המשתמש. המזהה הוא המאפיין sub של המטען הייעודי (payload) של פרטי הכניסה.
callback פונקציה handler אופציונלי של RevocationResponse.

דוגמת הקוד הבאה מציגה איך להשתמש בשיטה revoke עם מזהה.

  google.accounts.id.revoke('1618033988749895', done => {
    console.log(done.error);
  });

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

כשהפונקציה callback מופעלת, אובייקט RevocationResponse מועבר בתור הפרמטר. בטבלה הבאה מפורטים השדות שנכללים באובייקט של תגובת הביטול:

שעון שדה
successful השדה הזה הוא הערך המוחזר של הקריאה ל-method.
error השדה הזה יכול להכיל גם הודעת שגיאה מפורטת.

הפעולה בוצעה

השדה הזה הוא ערך בוליאני שמוגדר כ-True אם הקריאה לשיטת הביטול הצליחה או FALSE במקרה של כישלון.

error

השדה הזה הוא ערך מחרוזת ומכיל הודעת שגיאה מפורטת במקרה שהקריאה ל-method נכשלה, הוא לא מוגדר בהצלחה.