با مرجع API جاوا اسکریپت گوگل وارد شوید

این صفحه مرجع Sign-In JavaScript API را توصیف می کند. می توانید از این API برای نمایش اعلان One Tap یا دکمه Sign In With Google در صفحات وب خود استفاده کنید.

روش: google.accounts.id.initialize

روش google.accounts.id.initialize کلاینت Sign In With 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 یک نمونه کلاینت Sign In With Google ایجاد می کند که می تواند به طور ضمنی توسط همه ماژول ها در یک صفحه وب استفاده شود.

  • شما فقط باید یک بار با روش google.accounts.id.initialize تماس بگیرید، حتی اگر از چندین ماژول (مانند یک ضربه، دکمه شخصی، لغو، و غیره) در یک صفحه وب استفاده می کنید.
  • اگر چندین بار با روش google.accounts.id.initialize تماس بگیرید، فقط پیکربندی های آخرین تماس به خاطر سپرده می شود و استفاده می شود.

شما در واقع هر زمان که با روش google.accounts.id.initialize تماس می گیرید، پیکربندی ها را بازنشانی می کنید، و همه روش های بعدی در همان صفحه وب بلافاصله از تنظیمات جدید استفاده می کنند.

نوع داده: IdConfiguration

جدول زیر فیلدها و توضیحات نوع داده IdConfiguration را فهرست می کند:

میدان
client_id شناسه مشتری برنامه شما
auto_select انتخاب خودکار را فعال می کند.
callback تابع جاوا اسکریپت که توکن های ID را مدیریت می کند. Google One Tap و دکمه Sign With Google popup mode UX از این ویژگی استفاده می کنند.
login_uri URL نقطه پایانی ورود شما. دکمه Sign In With Google redirect UX از این ویژگی استفاده می کند.
native_callback تابع جاوا اسکریپت که اعتبار رمز عبور را کنترل می کند.
cancel_on_tap_outside اگر کاربر خارج از اعلان کلیک کند، درخواست را لغو می کند.
prompt_parent_id شناسه DOM عنصر ظرف فرمان One Tap
nonce یک رشته تصادفی برای نشانه های ID
context عنوان و کلمات در اعلان One Tap
state_cookie_domain اگر نیاز به فراخوانی One Tap در دامنه اصلی و زیر دامنه های آن دارید، دامنه والد را به این قسمت منتقل کنید تا از یک کوکی مشترک استفاده شود.
ux_mode جریان UX دکمه Sign In With Google
allowed_parent_origin مبداهایی که مجاز به جاسازی iframe میانی هستند. در صورت وجود این فیلد، One Tap در حالت iframe میانی اجرا می شود.
intermediate_iframe_close_callback وقتی کاربران به صورت دستی One Tap را می‌بندند، رفتار میانی فریم پیش‌فرض را لغو می‌کند.
itp_support One Tap UX ارتقا یافته را در مرورگرهای ITP فعال می کند.
login_hint با ارائه یک راهنمایی کاربر از انتخاب حساب رد شوید.
hd محدود کردن انتخاب حساب بر اساس دامنه
use_fedcm_for_prompt به مرورگر اجازه دهید درخواست های ورود به سیستم کاربر را کنترل کند و جریان ورود به سیستم بین وب سایت شما و Google را واسطه کند.
enable_redirect_uri_validation جریان تغییر مسیر دکمه را فعال کنید که با قوانین اعتبارسنجی Redirect URI مطابقت دارد.

client_id

این فیلد شناسه مشتری برنامه شما است که در کنسول Google Cloud پیدا و ایجاد شده است. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته بله client_id: "CLIENT_ID.apps.googleusercontent.com"

انتخاب_خودکار

این فیلد تعیین می‌کند که اگر تنها یک جلسه Google وجود داشته باشد که قبلاً برنامه شما را تأیید کرده است، یک رمز شناسه به طور خودکار بدون هیچ گونه تعامل کاربر برگردانده می‌شود. مقدار پیش فرض false است. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
بولی اختیاری auto_select: true

پاسخ به تماس

این فیلد تابع جاوا اسکریپت است که رمز شناسه بازگردانده شده از درخواست One Tap یا پنجره پاپ آپ را کنترل می کند. اگر از حالت UX popup Google One Tap یا دکمه Sign In With Google استفاده شود، این ویژگی ضروری است. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
تابع برای یک ضربه و حالت UX popup مورد نیاز است callback: handleResponse

login_uri

این ویژگی URI نقطه پایانی ورود شما است.

مقدار باید دقیقاً با یکی از URIهای مجاز تغییر مسیر برای مشتری OAuth 2.0 مطابقت داشته باشد که در کنسول Google Cloud پیکربندی کرده‌اید و باید با قوانین اعتبارسنجی Redirect URI ما مطابقت داشته باشد.

اگر صفحه فعلی صفحه ورود شما باشد، ممکن است این ویژگی حذف شود، در این صورت اعتبار به طور پیش فرض به این صفحه ارسال می شود.

هنگامی که کاربر روی دکمه Sign In With Google کلیک می کند و از حالت UX تغییر مسیر استفاده می کند، پاسخ اعتبار شناسه رمز ID به نقطه پایانی ورود به سیستم شما ارسال می شود.

برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید اختیاری مثال
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

این فیلد نام تابع جاوا اسکریپت است که اعتبار رمز عبور بازگردانده شده از مدیر اعتبار داخلی مرورگر را کنترل می کند. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
تابع اختیاری native_callback: handleResponse

cancel_on_tap_outside

این فیلد تنظیم می‌کند که اگر کاربر خارج از اعلان کلیک کند، درخواست One Tap لغو شود یا خیر. مقدار پیش فرض true است. اگر مقدار را روی false تنظیم کنید، می توانید آن را غیرفعال کنید. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
بولی اختیاری cancel_on_tap_outside: false

prompt_parent_id

این ویژگی DOM ID عنصر کانتینر را تنظیم می کند. اگر تنظیم نشده باشد، اعلان One Tap در گوشه سمت راست بالای پنجره نمایش داده می شود. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری prompt_parent_id: 'parent_id'

هیچ

این فیلد یک رشته تصادفی است که توسط شناسه شناسه برای جلوگیری از حملات تکراری استفاده می شود. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری nonce: "biaqbm70g23"

طول Nonce به حداکثر اندازه JWT پشتیبانی شده توسط محیط شما و محدودیت‌های اندازه HTTP مرورگر و سرور محدود می‌شود.

زمینه

این فیلد متن عنوان و پیام ها را در اعلان One Tap تغییر می دهد. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری context: "use"

جدول زیر تمام زمینه های موجود و توضیحات آنها را فهرست می کند:

زمینه
signin "ورود با گوگل"
signup "ثبت نام با گوگل"
use "استفاده با گوگل"

اگر نیاز به نمایش One Tap در دامنه والد و زیر دامنه های آن دارید، دامنه والد را به این قسمت منتقل کنید تا از یک کوکی حالت مشترک استفاده شود. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری state_cookie_domain: "example.com"

ux_mode

از این فیلد برای تنظیم جریان UX استفاده شده توسط دکمه Sign In With Google استفاده کنید. مقدار پیش فرض popup است. این ویژگی هیچ تاثیری بر OneTap UX ندارد. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری ux_mode: "redirect"

جدول زیر حالت های UX موجود و توضیحات آنها را فهرست می کند.

حالت UX
popup جریان UX ورود به سیستم را در یک پنجره بازشو انجام می دهد.
redirect جریان UX ورود به سیستم را با تغییر مسیر کامل صفحه انجام می دهد.

allow_parent_origin

مبداهایی که مجاز به جاسازی iframe میانی هستند. در صورت وجود این فیلد، One Tap در حالت iframe میانی اجرا می شود. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته یا آرایه رشته ای اختیاری allowed_parent_origin: "https://example.com"

جدول زیر انواع مقادیر پشتیبانی شده و توضیحات آنها را فهرست می کند.

انواع ارزش
string URI یک دامنه. "https://example.com"
string array آرایه ای از URI های دامنه. ["https://news.example.com", "https://local.example.com"]

پیشوندهای Wildcard نیز پشتیبانی می شوند. به عنوان مثال، "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 مطابقت دارد.
  • دامنه های Wildcard باید با یک طرح https:// امن شروع شوند، بنابراین "*.example.com" نامعتبر در نظر گرفته می شود.

اگر مقدار فیلد allowed_parent_origin نامعتبر باشد، مقداردهی اولیه با یک ضربه در حالت iframe میانی شکست می خورد و متوقف می شود.

intermediate_iframe_close_callback

وقتی کاربران به‌طور دستی One Tap را با ضربه زدن روی دکمه «X» در رابط کاربری One Tap می‌بندند، رفتار میانی فریم پیش‌فرض را لغو می‌کند. رفتار پیش‌فرض حذف فوری iframe میانی از DOM است.

قسمت intermediate_iframe_close_callback فقط در حالت iframe میانی اعمال می شود. و به جای iframe با یک ضربه، فقط بر فریم میانی تأثیر می گذارد. رابط کاربری One Tap قبل از فراخوانی تماس مجدد حذف می شود.

تایپ کنید مورد نیاز مثال
تابع اختیاری intermediate_iframe_close_callback: logBeforeClose

itp_support

این فیلد تعیین می کند که آیا One Tap UX ارتقا یافته باید در مرورگرهایی فعال شود که از پیشگیری از ردیابی هوشمند (ITP) پشتیبانی می کنند یا خیر. مقدار پیش فرض false است. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
بولی اختیاری itp_support: true

login_hint

اگر برنامه شما از قبل بداند چه کاربری باید وارد سیستم شود، می تواند یک راهنمایی ورود به سیستم به Google ارائه دهد. در صورت موفقیت آمیز بودن، انتخاب حساب حذف می شود. مقادیر پذیرفته شده عبارتند از: یک آدرس ایمیل یا یک مقدار فیلد زیر نشانه شناسه.

برای اطلاعات بیشتر، به قسمت 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 را واسطه کند. پیش فرض به نادرست. برای اطلاعات بیشتر به صفحه مهاجرت به FedCM مراجعه کنید.

تایپ کنید مورد نیاز مثال
بولی اختیاری use_fedcm_for_prompt: true

enable_redirect_uri_validation

جریان تغییر مسیر دکمه را فعال کنید که با قوانین اعتبارسنجی Redirect URI مطابقت دارد.

تایپ کنید مورد نیاز مثال
بولی اختیاری enable_redirect_uri_validation: true

روش: google.accounts.id.prompt

متد google.accounts.id.prompt فرمان One Tap یا مدیر اعتبار داخلی مرورگر را پس از فراخوانی متد initialize() نمایش می دهد. نمونه کد زیر را ببینید:

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

به طور معمول، متد prompt() در بارگذاری صفحه فراخوانی می شود. به دلیل وضعیت جلسه و تنظیمات کاربر در سمت Google، ممکن است رابط کاربری درخواست One Tap نمایش داده نشود. برای دریافت اطلاع از وضعیت رابط کاربری در لحظات مختلف، تابعی را برای دریافت اعلان‌های وضعیت رابط کاربری ارسال کنید.

اعلان ها در لحظات زیر شلیک می شوند:

  • نمایش لحظه: این پس از فراخوانی متد prompt() رخ می دهد. اعلان حاوی یک مقدار بولی است که نشان می دهد رابط کاربری نمایش داده می شود یا خیر.
  • لحظه رد شدن: زمانی اتفاق می‌افتد که درخواست One Tap با لغو خودکار، لغو دستی، یا زمانی که Google اعتبارنامه صادر نمی‌کند، مانند زمانی که جلسه انتخاب‌شده از سیستم Google خارج شده است، بسته می‌شود.

    در این موارد، توصیه می کنیم در صورت وجود، به سراغ ارائه دهندگان هویت بعدی بروید.

  • Dismissed moment: زمانی اتفاق می‌افتد که Google با موفقیت یک اعتبارنامه را بازیابی کند یا کاربر بخواهد جریان بازیابی اعتبار را متوقف کند. به عنوان مثال، هنگامی که کاربر شروع به وارد کردن نام کاربری و رمز عبور خود در گفتگوی ورود شما می کند، می توانید با متد google.accounts.id.cancel() تماس بگیرید تا اعلان One Tap را ببندید و یک لحظه رد شده را فعال کنید.

مثال کد زیر لحظه رد شده را پیاده سازی می کند:

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

نوع داده: PromptMomentNotification

جدول زیر روش ها و توضیحات نوع داده 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 این فیلد تنها زمانی تعریف می شود که کاربر برای ورود به سیستم، روی دکمه Sign in with Google کلیک کند و ویژگی state دکمه مشخص شود.

اعتبار

این فیلد نشانه شناسه به عنوان یک رشته رمزگذاری شده با پایه 64 JSON Web Token (JWT) است.

هنگام رمزگشایی ، 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 معتبر است، تأیید می‌شود که کاربر مالک قانونی حساب است.

مواردی که گوگل معتبر است:

  • email دارای پسوند @gmail.com است، این یک حساب جیمیل است.
  • email_verified درست است و hd تنظیم شده است، این یک حساب Google Workspace است.

کاربران می توانند بدون استفاده از Gmail یا Google Workspace برای حساب های Google ثبت نام کنند. وقتی email حاوی پسوند @gmail.com نیست و hd وجود ندارد، گوگل معتبر نیست و رمز عبور یا روش‌های چالش دیگری برای تأیید کاربر توصیه می‌شود. email_verfied همچنین می تواند درست باشد زیرا Google در ابتدا کاربر را هنگام ایجاد حساب Google تأیید کرد، اما مالکیت حساب ایمیل شخص ثالث ممکن است از آن زمان تغییر کرده باشد.

فیلد exp زمان انقضا را نشان می دهد تا بتوانید رمز را در سمت سرور خود تأیید کنید . برای شناسه شناسه ای که از Sign In With Google گرفته شده است یک ساعت زمان است. باید قبل از زمان انقضا توکن را تأیید کنید . exp برای مدیریت جلسه استفاده نکنید . نشانه شناسه منقضی شده به این معنی نیست که کاربر از سیستم خارج شده است. برنامه شما مسئول مدیریت جلسه کاربران شما است.

select_by

جدول زیر مقادیر احتمالی فیلد select_by را فهرست می کند. نوع دکمه استفاده شده همراه با حالت جلسه و رضایت برای تنظیم مقدار استفاده می شود.

  • کاربر دکمه One Tap یا Sign In With Google را فشار داد یا از فرآیند ورود خودکار بدون لمس استفاده کرد.

  • یک جلسه موجود پیدا شد، یا کاربر برای ایجاد یک جلسه جدید، یک حساب Google را انتخاب کرده و به سیستم وارد شده است.

  • قبل از به اشتراک گذاشتن اعتبار شناسه نشانه شناسه با برنامه شما، کاربر یا

    • دکمه تأیید را فشار دهید تا رضایت آنها را برای اشتراک‌گذاری اعتبارنامه‌ها اعلام کنید، یا
    • قبلاً رضایت داده بود و از Select an Account برای انتخاب یک حساب 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 را انتخاب کند و سپس دکمه تأیید را برای رضایت و اشتراک گذاری اعتبارنامه فشار داد.

دولت

این فیلد تنها زمانی تعریف می شود که کاربر برای ورود به سیستم، روی دکمه Sign in with Google کلیک کند و ویژگی state دکمه کلیک شده مشخص شود. مقدار این فیلد همان مقداری است که در ویژگی state دکمه مشخص کرده اید.

از آنجایی که چندین دکمه ورود با Google را می توان در یک صفحه ارائه کرد، می توانید هر دکمه را با یک رشته منحصر به فرد اختصاص دهید. از این رو، می‌توانید با این فیلد state مشخص کنید که کاربر روی کدام دکمه برای ورود به سیستم کلیک کرده است.

روش: google.accounts.id.renderButton

روش google.accounts.id.renderButton یک دکمه Sign In With Google را در صفحات وب شما ارائه می دهد.

نمونه کد زیر را ببینید:

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

نوع داده: GsiButtonConfiguration

جدول زیر فیلدها و توضیحات نوع داده GsiButtonConfiguration را فهرست می کند:

صفت
type نوع دکمه: نماد یا دکمه استاندارد.
theme تم دکمه. مثلا filled_blue یا filled_black.
size اندازه دکمه مثلاً کوچک یا بزرگ.
text متن دکمه به عنوان مثال، "Sign in with Google" یا "Sign up with Google".
shape شکل دکمه به عنوان مثال، مستطیل یا دایره.
logo_alignment تراز آرم Google: چپ یا وسط.
width عرض دکمه، بر حسب پیکسل.
locale اگر تنظیم شود، زبان دکمه ارائه می شود.
click_listener در صورت تنظیم، زمانی که دکمه Sign in with Google کلیک می شود، این تابع فراخوانی می شود.
state اگر تنظیم شود، این رشته با کد ID برمی گردد.

انواع صفات

بخش‌های زیر شامل جزئیات مربوط به نوع هر ویژگی و یک مثال است.

نوع

نوع دکمه مقدار پیش فرض standard است.

برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته بله type: "icon"

جدول زیر انواع دکمه های موجود و توضیحات آنها را فهرست می کند:

تایپ کنید
standard
دکمه با متن یا اطلاعات شخصی.
icon
یک دکمه نماد بدون متن.

موضوع

تم دکمه. مقدار پیش فرض outline است. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری theme: "filled_blue"

جدول زیر تم های موجود و توضیحات آنها را فهرست می کند:

موضوع
outline
یک تم دکمه استاندارد.
filled_blue
یک تم دکمه آبی پر شده.
filled_black
یک تم دکمه سیاه و سفید.

اندازه

اندازه دکمه مقدار پیش فرض large است. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری size: "small"

جدول زیر اندازه دکمه های موجود و توضیحات آنها را فهرست می کند:

اندازه
large
یک دکمه استاندارد بزرگیک دکمه آیکون بزرگیک دکمه بزرگ و شخصی سازی شده
یک دکمه بزرگ
medium
یک دکمه استاندارد متوسطیک دکمه آیکون متوسط
یک دکمه با اندازه متوسط
small
یک دکمه کوچکیک دکمه آیکون کوچک
یک دکمه کوچک

متن

متن دکمه مقدار پیش فرض signin_with است. هیچ تفاوت بصری برای متن دکمه‌های آیکون که ویژگی‌های text متفاوتی دارند، وجود ندارد. تنها استثنا زمانی است که متن برای دسترسی به صفحه نمایش خوانده شود.

برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری text: "signup_with"

جدول زیر تمام متن های دکمه موجود و توضیحات آنها را فهرست می کند:

متن
signin_with
متن دکمه "ورود با گوگل" است.
signup_with
متن دکمه "ثبت نام با گوگل" است.
continue_with
متن دکمه "ادامه با گوگل" است.
signin
متن دکمه "ورود به سیستم" است.

شکل

شکل دکمه مقدار پیش فرض rectangular است. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری shape: "rectangular"

جدول زیر اشکال دکمه های موجود و توضیحات آنها را فهرست می کند:

شکل
rectangular
دکمه مستطیلی شکل. اگر برای نوع دکمه icon استفاده می شود، همان square است.
pill
دکمه قرص شکل. اگر برای نوع دکمه icon استفاده می شود، همان circle است.
circle
دکمه دایره ای شکل. اگر برای نوع دکمه standard استفاده شود، همان pill است.
square
دکمه مربع شکل. اگر برای نوع دکمه standard استفاده شود، همان rectangular است.

آرم_تراز

تراز آرم گوگل. مقدار پیش فرض left است. این ویژگی فقط برای نوع دکمه standard اعمال می شود. برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری logo_alignment: "center"

جدول زیر ترازهای موجود و توضیحات آنها را فهرست می کند:

آرم_تراز
left
نشان‌واره Google را تراز چپ می‌کند.
center
نشان‌واره Google را در مرکز تراز می‌کند.

عرض

حداقل عرض دکمه، بر حسب پیکسل. حداکثر عرض 400 پیکسل است.

برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری width: "400"

محل

اختیاری. متن دکمه را با استفاده از محل مشخص شده نمایش دهید، در غیر این صورت به طور پیش فرض برای تنظیمات حساب Google یا مرورگر کاربران. هنگام بارگیری کتابخانه، پارامتر hl و کد زبان را به دستورالعمل src اضافه کنید، برای مثال: gsi/client?hl=<iso-639-code> .

اگر تنظیم نشده باشد، از محلی پیش‌فرض مرورگر یا اولویت کاربر جلسه Google استفاده می‌شود. بنابراین، کاربران مختلف ممکن است نسخه‌های متفاوتی از دکمه‌های محلی‌سازی شده و احتمالاً با اندازه‌های مختلف را ببینند.

برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری locale: "zh_CN"

click_listener

شما می توانید یک تابع جاوا اسکریپت را تعریف کنید تا زمانی که دکمه ورود با گوگل کلیک می شود با استفاده از ویژگی 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 کلیک می شود، پیام Sign in with Google clicked... به کنسول وارد می شود.

دولت

اختیاری است، از آنجایی که چندین دکمه ورود به سیستم با Google را می توان در همان صفحه ارائه کرد، می توانید هر دکمه را با یک رشته منحصر به فرد اختصاص دهید. همان رشته به همراه رمز شناسه باز می گردد، بنابراین می توانید تشخیص دهید که کاربر روی کدام دکمه کلیک کرده تا وارد شود.

برای اطلاعات بیشتر به جدول زیر مراجعه کنید:

تایپ کنید مورد نیاز مثال
رشته اختیاری data-state: "button 1"

نوع داده: اعتبار

هنگامی که تابع native_callback شما فراخوانی می شود، یک شی Credential به عنوان پارامتر ارسال می شود. جدول زیر فیلدهای موجود در شی را فهرست می کند:

میدان
id کاربر را شناسایی می کند.
password رمز عبور

روش: google.accounts.id.disableAutoSelect

وقتی کاربر از وب‌سایت شما خارج می‌شود، باید با روش google.accounts.id.disableAutoSelect تماس بگیرید تا وضعیت را در کوکی‌ها ثبت کنید. این از یک حلقه مرده UX جلوگیری می کند. قطعه کد زیر را ببینید:

google.accounts.id.disableAutoSelect()

مثال کد زیر متد google.accounts.id.disableAutoSelect را با تابع onSignout() پیاده سازی می کند:

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

روش: 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>

پاسخ به تماس بارگیری کتابخانه: در GoogleLibraryLoad

می توانید یک پاسخ تماس onGoogleLibraryLoad ثبت کنید. پس از بارگیری کتابخانه جاوا اسکریپت Sign In With Google اطلاع داده می شود:

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

این فراخوان فقط یک میانبر برای پاسخ به تماس window.onload است. هیچ تفاوتی در رفتار وجود ندارد.

مثال کد زیر یک پاسخ تماس onGoogleLibraryLoad را پیاده سازی می کند:

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

روش: google.accounts.id.revoke

روش google.accounts.id.revoke اعطای OAuth را که برای اشتراک‌گذاری کد شناسه برای کاربر مشخص شده استفاده می‌شود، باطل می‌کند. قطعه کد زیر را ببینید: javascript google.accounts.id.revoke(login_hint, callback)

پارامتر تایپ کنید توضیحات
login_hint رشته آدرس ایمیل یا شناسه منحصر به فرد حساب Google کاربر. شناسه ویژگی sub محموله اعتبارنامه است.
callback تابع کنترل کننده اختیاری RevocationResponse .

نمونه کد زیر نحوه استفاده از روش revoke را با یک شناسه نشان می دهد.

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

نوع داده: RevocationResponse

هنگامی که تابع callback شما فراخوانی می شود، یک شی RevocationResponse به عنوان پارامتر ارسال می شود. جدول زیر فیلدهایی را که در شیء پاسخ ابطال وجود دارد فهرست می کند:

میدان
successful این فیلد مقدار برگشتی فراخوانی متد است.
error این فیلد به صورت اختیاری حاوی یک پیام پاسخ خطای مفصل است.

موفق

این فیلد یک مقدار بولی است که در صورت موفقیت یا نادرست بودن فراخوانی متد revoke در صورت شکست، روی true تنظیم شده است.

خطا

این فیلد یک مقدار رشته است و حاوی یک پیغام خطای دقیق است، اگر فراخوانی روش ابطال ناموفق باشد، در صورت موفقیت تعریف نشده است.