مرجع Sign in with Google JavaScript API

تصف هذه الصفحة المرجعية واجهة برمجة التطبيقات Sign in with Google JavaScript API، والتي تُستخدم لعرض زر "تسجيل الدخول باستخدام حساب Google" أو طلب "بنقرة واحدة" على صفحات الويب.

الطريقة: google.accounts.id.initialize

يؤدي الإجراء 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 مرة واحدة حتى إذا كنت تستخدم وحدات متعددة (مثل &quot;النقرة الواحدة&quot; والزر المخصّص والإبطال وما إلى ذلك) في صفحة الويب نفسها.
  • في حال استدعاء طريقة google.accounts.id.initialize عدة مرات، سيتم تذكُّر الإعدادات في آخر استدعاء واستخدامها فقط.

يمكنك إعادة ضبط الإعدادات عند استدعاء طريقة google.accounts.id.initialize، وستستخدم جميع الطرق اللاحقة في صفحة الويب نفسها الإعدادات الجديدة على الفور.

نوع البيانات: IdConfiguration

يسرد الجدول التالي الحقول والأوصاف لنوع البيانات IdConfiguration:

الحقل
client_id معرِّف العميل لتطبيقك
color_scheme نظام الألوان الذي تم تطبيقه على طلب "النقرة الواحدة"
auto_select تفعيل الاختيار التلقائي
callback دالة JavaScript التي تعالج الرموز المميّزة للمعرّفات تستخدم هذه السمة خدمة "نقرة واحدة" من Google ووضع تجربة المستخدم popup لزر "تسجيل الدخول باستخدام حساب Google".
login_uri عنوان URL لنقطة نهاية تسجيل الدخول يستخدم وضع تجربة المستخدم (UX) redirect لزر "تسجيل الدخول باستخدام حساب Google" هذه السمة.
native_callback دالة JavaScript التي تعالج بيانات اعتماد كلمة المرور
cancel_on_tap_outside يتم إلغاء الطلب إذا نقر المستخدم خارجه.
prompt_parent_id معرّف DOM لعنصر حاوية طلب One Tap
nonce سلسلة عشوائية لرموز التعريف المميّزة
essential_claims مطالبات إضافية لتضمينها في رمز التعريف الذي تعرضه Google
context العنوان والكلمات في طلب ميزة "نقرة واحدة"
state_cookie_domain إذا كنت بحاجة إلى استدعاء One Tap في النطاق الرئيسي ونطاقاته الفرعية، يُرجى تمرير النطاق الرئيسي إلى هذا الحقل ليتم استخدام ملف تعريف ارتباط واحد مشترك.
ux_mode مسار تجربة المستخدم لزر "تسجيل الدخول باستخدام حساب Google"
allowed_parent_origin المصادر المسموح لها بتضمين إطار iframe الوسيط يتم تشغيل ميزة One Tap في وضع iframe المتوسط في حال توفّر هذا الحقل.
intermediate_iframe_close_callback تتجاوز هذه السمة السلوك التلقائي لإطار iframe الوسيط عندما يغلق المستخدمون ميزة &quot;بنقرة واحدة&quot; يدويًا.
itp_support تفعيل تجربة المستخدم المحسّنة لميزة "بنقرة واحدة" على المتصفّحات التي تستخدم ميزة "منع التتبُّع الذكي" (ITP)
login_hint تخطّي اختيار الحساب من خلال تقديم تلميح للمستخدم
hd تقييد اختيار الحساب حسب النطاق
use_fedcm_for_prompt السماح للمتصفّح بالتحكّم في طلبات تسجيل الدخول التي تظهر للمستخدمين والتوسّط في عملية تسجيل الدخول بين موقعك الإلكتروني وGoogle
use_fedcm_for_button يحدّد هذا الحقل ما إذا كان يجب استخدام تجربة المستخدم لزر FedCM على Chrome (الإصدار M125 والإصدارات الأحدث على أجهزة الكمبيوتر والإصدار M128 والإصدارات الأحدث على أجهزة Android). القيمة التلقائية هي false.
button_auto_select ما إذا كان سيتم تفعيل خيار الاختيار التلقائي لمسار زر FedCM. في حال تفعيل هذه الميزة، سيتم تلقائيًا تسجيل دخول المستخدمين المكرري الزيارة الذين لديهم جلسة نشطة على Google، وسيتم تجاوز طلب "محدّد الحساب". القيمة التلقائية هي false.

client_id

هذا الحقل هو معرِّف العميل لتطبيقك، والذي يتم العثور عليه وإنشاؤه في وحدة تحكُّم Google Cloud. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة نعم client_id: "CLIENT_ID.apps.googleusercontent.com"

color_scheme

يمثّل هذا الحقل نظام الألوان المطبَّق على طلب One Tap. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياريّ. يتم ضبطه تلقائيًا على نظام الألوان التلقائي في نظام المستخدمين. color_scheme: "dark"

يسرد الجدول التالي أنظمة الألوان المتاحة وأوصافها.

الألوان
default تطبيق الألوان التلقائية لنظام المستخدم، استنادًا إلى المظهر المفضّل للمستخدم، سواء كان فاتحًا أو داكنًا
light تطبيق ألوان فاتحة
dark طبِّق ألوانًا داكنة.

auto_select

يحدّد هذا الحقل ما إذا كان سيتم عرض رمز مميّز للرقم التعريفي تلقائيًا بدون أي تفاعل من المستخدم عندما تكون هناك جلسة واحدة فقط على Google وافقت على تطبيقك من قبل. تكون القيمة التلقائية false. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
قيمة منطقية اختياري auto_select: true

callback

هذا الحقل هو دالة JavaScript التي تعالج الرمز المميّز لرقم التعريف الذي يتم عرضه من الطلب "بنقرة واحدة" أو النافذة المنبثقة. هذه السمة مطلوبة في حال استخدام وضع تجربة المستخدم (UX) popup لخدمة "نقرة واحدة" من Google أو زر "تسجيل الدخول باستخدام حساب Google". اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
دالة مطلوبة لميزة "بنقرة واحدة" ووضع تجربة المستخدم popup callback: handleResponse

login_uri

هذه السمة هي معرّف الموارد المنتظم (URI) لنقطة نهاية تسجيل الدخول.

يجب أن تتطابق القيمة تمامًا مع أحد معرّفات الموارد المنتظمة (URI) لإعادة التوجيه المصرّح بها لعميل OAuth 2.0، والتي ضبطتها في Google Cloud Console، ويجب أن تتوافق مع قواعد التحقّق من معرّف الموارد المنتظم (URI) لإعادة التوجيه.

يمكن حذف هذه السمة إذا كانت الصفحة الحالية هي صفحة تسجيل الدخول، وفي هذه الحالة يتم نشر بيانات الاعتماد على هذه الصفحة تلقائيًا.

يتم نشر استجابة بيانات اعتماد الرمز المميّز للمعرّف في نقطة نهاية تسجيل الدخول عندما ينقر المستخدم على زر "تسجيل الدخول باستخدام حساب Google" ويتم استخدام وضع تجربة المستخدم لإعادة التوجيه.

اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع اختياري مثال
عنوان URL يتم ضبطه تلقائيًا على معرّف الموارد المنتظم (URI) للصفحة الحالية أو القيمة التي تحدّدها.
لا تُستخدم هذه السمة إلا عند ضبط السمة ux_mode: "redirect".
login_uri: "https://www.example.com/login"

يجب أن تعالج نقطة نهاية تسجيل الدخول طلبات POST التي تحتوي على مَعلمة credential مع قيمة رمز مميّز للرقم التعريفي في النص. لا يتم تضمين السمة select_by في طلبات HTTP POST إلى login_uri أو data-login_uri، ويتم عرضها فقط في كائن CredentialResponse الذي تم تمريره إلى دالة JavaScript callback.

native_callback

هذا الحقل هو اسم دالة JavaScript التي تعالج بيانات اعتماد كلمة المرور التي يتم عرضها من مدير بيانات الاعتماد المدمج في المتصفّح. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
دالة اختياري native_callback: handleResponse

cancel_on_tap_outside

يحدّد هذا الحقل ما إذا كان سيتم إلغاء طلب ميزة "نقرة واحدة" في حال نقر المستخدم خارج الطلب. تكون القيمة التلقائية true. ويمكنك إيقافها من خلال ضبط القيمة على false. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
قيمة منطقية اختياري cancel_on_tap_outside: false

prompt_parent_id

تضبط هذه السمة معرّف DOM لعنصر الحاوية. وفي حال عدم ضبطها، سيظهر طلب One Tap في أعلى يسار النافذة. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري prompt_parent_id: 'parent_id'

رقم خاص

هذا الحقل عبارة عن سلسلة عشوائية يستخدمها الرمز المميّز للتعريف لمنع هجمات إعادة الإرسال. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري nonce: "biaqbm70g23"

يقتصر طول الرمز المميّز على الحد الأقصى لحجم رمز JWT الذي تتيحه بيئتك، وقيود حجم HTTP الفردية للمتصفّح والخادم.

essential_claims

هذا الحقل عبارة عن سلسلة تُستخدَم لطلب تضمين مطالبات إضافية في رمز التعريف الذي تعرضه Google. للاطّلاع على قائمة كاملة بالادّعاءات التي تقبلها Google، يُرجى مراجعة الادّعاءات المسموح بها.

اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري essential_claims: "auth_time, amr"

context

يغيّر هذا الحقل نص العنوان والرسائل التي تظهر في طلب "نقرة واحدة"، ولا يؤثر في متصفّحات ITP. القيمة التلقائية هي signin.

اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري context: "use"

يسرد الجدول التالي جميع السياقات المتاحة وأوصافها:

السياق
signin "تسجيل الدخول إلى"
signup "Sign up to"
use "استخدام"

إذا كنت بحاجة إلى عرض ميزة "بنقرة واحدة" في النطاق الرئيسي ونطاقاته الفرعية، عليك تمرير النطاق الرئيسي إلى هذا الحقل ليتم استخدام ملف تعريف ارتباط واحد للحالة المشتركة. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري state_cookie_domain: "example.com"

ux_mode

استخدِم هذا الحقل لضبط مسار تجربة المستخدم الذي يتّبعه زر "تسجيل الدخول باستخدام حساب Google". القيمة التلقائية هي popup. لا تؤثر هذه السمة في تجربة المستخدم في OneTap. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري ux_mode: "redirect"

يسرد الجدول التالي أوضاع تجربة المستخدم المتاحة وأوصافها.

وضع تجربة المستخدم
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 وجميع نطاقاته الفرعية. استخدِم قائمة قيم مفصولة بفاصلة لتمثيل نطاقَين مختلفَين. على سبيل المثال، يتطابق "https://example1.com,https://.example2.com" مع النطاقَين example1.com وexample2.com والنطاقات الفرعية لـ example2.com
  • يجب أن تبدأ النطاقات التي تتضمّن أحرف بدل ببروتوكول https:// ‎ آمن، لذا يُعتبر "*.example.com" غير صالح.

إذا كانت قيمة الحقل allowed_parent_origin غير صالحة، ستتعذّر عملية إعداد ميزة "بنقرة واحدة" في وضع إطار iframe الوسيط وستتوقف.

intermediate_iframe_close_callback

تتجاوز هذه السمة السلوك التلقائي لإطار iframe الوسيط عندما يغلق المستخدمون ميزة "بنقرة واحدة" يدويًا من خلال النقر على الزر "X" في واجهة مستخدم الميزة. الإعداد التلقائي هو إزالة إطار iframe الوسيط من نموذج DOM على الفور.

لا يسري الحقل intermediate_iframe_close_callback إلا في وضع iframe الوسيط. ويؤثر ذلك فقط في إطار iframe الوسيط، وليس في إطار iframe الخاص بميزة "نقرة واحدة". تتم إزالة واجهة مستخدم One Tap قبل استدعاء دالة الاستدعاء.

النوع مطلوب مثال
دالة اختياري intermediate_iframe_close_callback: logBeforeClose

itp_support

يحدّد هذا الحقل ما إذا كان يجب تفعيل تجربة المستخدم المحسّنة لميزة &quot;نقرة واحدة&quot; على المتصفّحات التي تتيح ميزة &quot;منع التتبُّع الذكي&quot; (ITP). تكون القيمة التلقائية false. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
قيمة منطقية اختياري itp_support: false

login_hint

إذا كان تطبيقك يعرف مسبقًا المستخدم الذي يجب تسجيل دخوله، يمكنه تقديم تلميح تسجيل الدخول إلى Google. في حال نجاح العملية، يتم تخطّي اختيار الحساب. القيم المقبولة هي: عنوان بريد إلكتروني أو قيمة حقل sub لرمز مميّز للتعريف.

لمزيد من المعلومات، يُرجى الاطّلاع على حقل login_hint في مستندات OpenID Connect.

النوع مطلوب مثال
سلسلة أو عنوان بريد إلكتروني أو القيمة من حقل sub لرمز مميّز لرقم التعريف اختياري login_hint: 'elisa.beckett@gmail.com'

فائقة الدقة

عندما يكون لدى المستخدم حسابات متعددة ويجب أن يسجّل الدخول باستخدام حسابه على Workspace فقط، يمكنك استخدام هذه السياسة لتقديم تلميح عن اسم النطاق إلى Google. في حال نجاح العملية، تقتصر حسابات المستخدمين المعروضة أثناء اختيار الحساب على النطاق المقدَّم. قيمة حرف بدل: لا يقدّم * سوى حسابات Workspace للمستخدم ويستبعد حسابات المستهلكين (user@gmail.com) أثناء اختيار الحساب.

لمزيد من المعلومات، يُرجى الاطّلاع على حقل hd في مستندات OpenID Connect.

النوع مطلوب مثال
سلسلة. اسم نطاق مؤهّل بالكامل أو *. اختياري hd: '*'

use_fedcm_for_prompt

يمكنك السماح للمتصفّح بالتحكّم في طلبات تسجيل الدخول التي تظهر للمستخدمين والتوسّط في عملية تسجيل الدخول بين موقعك الإلكتروني وGoogle. الخيار التلقائي هو "خطأ". لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.

النوع مطلوب مثال
قيمة منطقية منهي العمل به use_fedcm_for_prompt: true

use_fedcm_for_button

يحدّد هذا الحقل ما إذا كان يجب استخدام تجربة المستخدم لزر FedCM على Chrome (الإصدار M125 والإصدارات الأحدث على أجهزة الكمبيوتر المكتبي والإصدار M128 والإصدارات الأحدث على أجهزة Android). القيمة التلقائية هي false. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
قيمة منطقية اختياري use_fedcm_for_button: true

button_auto_select

يحدّد هذا الحقل ما إذا كان سيتم تفعيل خيار الاختيار التلقائي لتدفق زر FedCM. في حال تفعيل هذا الخيار، سيتم تلقائيًا تسجيل دخول المستخدمين المكرري الزيارة الذين لديهم جلسة نشطة على Google، وسيتم تجاوز طلب "محدّد الحساب". القيمة التلقائية هي false. يجب تفعيل ميزة تسجيل الدخول التلقائي باستخدام الزر صراحةً أثناء إطلاق ميزة الموافقة. اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
قيمة منطقية اختياري button_auto_select: true

الطريقة: google.accounts.id.prompt

تعرض طريقة google.accounts.id.prompt طلب One Tap أو مدير بيانات الاعتماد المضمّن في المتصفّح بعد استدعاء طريقة initialize(). اطّلِع على مثال الرمز البرمجي التالي للطريقة:

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

عادةً ما يتم استدعاء طريقة prompt() عند تحميل الصفحة. بسبب حالة الجلسة وإعدادات المستخدم من جهة Google، قد لا تظهر واجهة المستخدم الخاصة بطلب &quot;نقرة واحدة&quot;. لتلقّي إشعارات بشأن حالة واجهة المستخدم في لحظات مختلفة، يمكنك تمرير دالة لتلقّي إشعارات حالة واجهة المستخدم.

يتم إرسال الإشعارات في الأوقات التالية:

  • لحظة العرض: يحدث ذلك بعد استدعاء طريقة prompt(). يحتوي الإشعار على قيمة منطقية للإشارة إلى ما إذا كانت واجهة المستخدم معروضة أم لا.
  • اللحظة التي تم تخطّيها: تحدث عندما يتم إغلاق طلب &quot;نقرة واحدة&quot; من خلال إلغاء تلقائي أو إلغاء يدوي أو عندما يتعذّر على Google إصدار بيانات اعتماد، مثلاً عندما يتم تسجيل الخروج من Google في الجلسة المحدّدة.

    في هذه الحالات، ننصحك بالانتقال إلى موفّري الهوية التاليين، إن توفّروا.

  • لحظة الإغلاق: تحدث هذه اللحظة عندما تسترد Google بيانات الاعتماد بنجاح أو عندما يريد المستخدم إيقاف عملية استرداد بيانات الاعتماد. على سبيل المثال، عندما يبدأ المستخدم في إدخال اسم المستخدم وكلمة المرور في مربّع حوار تسجيل الدخول، يمكنك استدعاء طريقة google.accounts.id.cancel() لإغلاق طلب &quot;بنقرة واحدة&quot; وتشغيل لحظة الرفض.

ينفّذ مثال الرمز البرمجي التالي اللحظة التي تم تخطّيها:

<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() تعرض هذه الإشارة true إذا ظهرت رسالة المطالبة "بنقرة واحدة".

ملاحظة: عند تفعيل FedCM، لا يكون هذا الإشعار متاحًا. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.
isDisplayed() تعرض true إذا كان نوع اللحظة هو PromptMoment.DISPLAY وتم عرض طلب "نقرة واحدة".

ملاحظة: عند تفعيل FedCM، لا يكون هذا الإشعار متاحًا. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.
isNotDisplayed() تعرض هذه الدالة true إذا كان نوع اللحظة هو PromptMoment.DISPLAY ولم يتم عرض طلب "بنقرة واحدة".

ملاحظة: عند تفعيل 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() تعرض هذه الطريقة true إذا كان نوع اللحظة هو PromptMoment.SKIPPED

ملاحظة: عند تفعيل FedCM، تكون هذه الطريقة متاحة جزئيًا. وعلى وجه الخصوص، لا يتيح استخدام سبب التخطّي user_cancel. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.
getSkippedReason()

السبب المفصّل لتخطّي اللحظة في ما يلي القيم المحتمَلة:

  • auto_cancel
  • user_cancel
  • tap_outside
  • issuing_failed
ملاحظة: عند تفعيل FedCM، تكون هذه الطريقة متاحة جزئيًا. وعلى وجه التحديد، لا يتيح استخدام سبب التخطّي user_cancel. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.
isDismissedMoment() يتم عرض true إذا كان نوع اللحظة هو PromptMoment.DISMISSED.

ملاحظة: عند تفعيل FedCM، تكون هذه الطريقة متاحة بالكامل. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.
getDismissedReason()

السبب المفصّل للرفض في ما يلي القيم المحتمَلة:

  • credential_returned
  • cancel_called
  • flow_restarted
ملاحظة: عند تفعيل FedCM، تكون هذه الطريقة متاحة بالكامل. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.
getMomentType()

عرض سلسلة لنوع اللحظة في ما يلي القيم المحتمَلة:

  • display
  • skipped
  • dismissed

نوع البيانات: CredentialResponse

عند استدعاء الدالة callback، يتم تمرير عنصر CredentialResponse كمَعلمة. يسرد الجدول التالي الحقول المضمّنة في عنصر استجابة بيانات الاعتماد:

الحقل
credential رمز تعريف JWT المميّز المشفَّر الذي تصدره Google
select_by كيفية تسجيل المستخدم الدخول
state لا يتم تحديد هذا الحقل إلا عندما ينقر المستخدم على زر "تسجيل الدخول باستخدام حساب Google" لتسجيل الدخول، ويتم تحديد السمة state للزر.

شهادة

هذا الحقل هو رمز التعريف المميّز كسلسلة JSON Web Token (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 Google Workspace email address
  "auth_time": 1748875426,
  "amr": ["mfa", "pwd", "tel"],
  "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 creation time
  "exp": 1596477600, // Unix timestamp of the assertion expiration time
  "jti": "abc161803398874def"
}

الحقل sub هو معرّف فريد عالميًا لحساب Google. يجب استخدام الحقل sub كمعرّف للمستخدم لأنّه فريد من نوعه بين جميع حسابات Google ولا تتم إعادة استخدامه مطلقًا.

باستخدام الحقول email وemail_verified وhd، يمكنك تحديد ما إذا كانت Google تستضيف عنوان بريد إلكتروني وتملك صلاحية إدارته. في الحالات التي تكون فيها Google موثوقة، يتم تأكيد أنّ المستخدم هو صاحب الحساب الشرعي.

الحالات التي تكون فيها Google موثوقة:

  • إذا كان عنوان البريد الإلكتروني email ينتهي بـ @gmail.com، يعني ذلك أنّه حساب Gmail.
  • إذا كانت قيمة email_verified صحيحة وتم ضبط 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 ينطبق ذلك فقط على المتصفّحات التي تتوافق مع FedCM.
user_1tap نقَرَ مستخدم لديه جلسة حالية على زر "المتابعة باسم" في ميزة "بنقرة واحدة" لمنح الموافقة ومشاركة بيانات الاعتماد. لا ينطبق هذا الإعداد إلا على الإصدار 75 من Chrome والإصدارات الأحدث.
user_2tap نقَرَ مستخدم ليس لديه جلسة حالية على زر "المتابعة باسم" في ميزة "بنقرة واحدة" لاختيار حساب، ثم نقَرَ على زر "تأكيد" في نافذة منبثقة لمنح الموافقة ومشاركة بيانات الاعتماد. ينطبق ذلك على المتصفّحات غير المستندة إلى Chromium.
itp مستخدم سبق له منح الموافقة نقر على ميزة &quot;بنقرة واحدة&quot; في متصفّحات ITP.
itp_confirm نقَرَ مستخدم لم يمنح موافقته على ميزة "بنقرة واحدة" في متصفّحات ITP، ثم نقَرَ على الزر "متابعة" لمنح الموافقة ومشاركة بيانات الاعتماد.
btn مستخدم سبق له منح الموافقة نقر على زر "تسجيل الدخول باستخدام حساب Google" واختار حساب Google من "اختيار حساب" لمشاركة بيانات الاعتماد.
btn_confirm مستخدم لم يمنح موافقته، نقر على زر "تسجيل الدخول باستخدام حساب Google" ثم نقر على زر "متابعة" لمنح موافقته ومشاركة بيانات الاعتماد.

الولاية

لا يتم تحديد هذا الحقل إلا عندما ينقر المستخدم على زر "تسجيل الدخول باستخدام حساب 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
standard-button-white icon-button-white personalized-button-white
مظهر الزر العادي
التعبئة: ‎#FFFFFF
الحد الخارجي: ‎#747775 | ‏1 بكسل | داخلي
الخط: ‎#1F1F1F | ‏Roboto Medium | ‏14/20
مخصّص: ‎#1F1F1F | ‏Roboto | ‏Medium 12/14 | ‏Regular 11/13
filled_blue
مظهر زرّ باللون الأزرق
Fill: #0B57D0
Stroke: #OB57D0 | 1px | inside
Font: #FFFFFF | Google Sans Medium | 14/20
Personalized: #FFFFFF | Roboto | Medium 12/14 | Regular 11/13
filled_black
مظهر زرّ أسود مع شعار متباين
التعبئة: ‎#202124
الحدّ: ‎#OB57D0 | ‏1 بكسل | داخلي
الخط: ‎#FFFFFF | ‏Google Sans Medium | ‏14/20
مخصّص: ‎#FFFFFF | ‏Roboto | ‏Medium 12/14 | ‏Regular 11/13
outline_dark
مظهر زرّ أسود اللون
التعبئة: #131314
الحدّ: #8E918F | 1 بكسل | داخلي
الخط: #FFFFFF | Google Sans Medium | 14/20
مخصّص: #FFFFFF | Roboto | Medium 12/14 | Regular 11/13

الحجم

حجم الزر تكون القيمة التلقائية 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"

locale

اختياريّ. يتم عرض نص الزر باستخدام الإعدادات المحلية المحدّدة، وإلا سيتم استخدام الإعدادات التلقائية لحساب Google أو إعدادات المتصفّح الخاصة بالمستخدم. أضِف المَعلمة hl ورمز اللغة إلى توجيه src عند تحميل المكتبة، على سبيل المثال: gsi/client?hl=<iso-639-code>.

في حال عدم ضبطها، يتم استخدام الإعدادات المحلية التلقائية للمتصفّح أو الإعدادات المفضّلة لمستخدم جلسة Google. لذلك، قد يرى المستخدمون المختلفون إصدارات مختلفة من الأزرار المترجَمة، وربما بأحجام مختلفة.

اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري locale: "zh_CN"

click_listener

يمكنك تحديد دالة JavaScript ليتم استدعاؤها عند النقر على زر &quot;تسجيل الدخول باستخدام حساب Google&quot; باستخدام السمة 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...")
  }
  

في هذا المثال، يتم تسجيل الرسالة تم النقر على زر "تسجيل الدخول باستخدام حساب Google"... في وحدة التحكّم عند النقر على زر "تسجيل الدخول باستخدام حساب Google".

الولاية

اختياري: بما أنّه يمكن عرض أزرار متعددة لـ "تسجيل الدخول باستخدام حساب Google" على الصفحة نفسها، يمكنك تخصيص سلسلة فريدة لكل زر. ستظهر السلسلة نفسها مع الرمز المميّز للرقم التعريفي، ما يتيح لك تحديد الزر الذي نقر عليه المستخدم لتسجيل الدخول.

اطّلِع على الجدول التالي لمزيد من المعلومات:

النوع مطلوب مثال
سلسلة اختياري data-state: "button 1"

نوع البيانات: بيانات الاعتماد

عند استدعاء الدالة native_callback، يتم تمرير عنصر Credential كمَعلمة. يسرد الجدول التالي الحقول المضمّنة في العنصر:

الحقل
id تحدّد هوية المستخدم.
password كلمة المرور

الطريقة: google.accounts.id.disableAutoSelect

عندما يسجّل المستخدم الخروج من موقعك الإلكتروني، عليك استدعاء الطريقة google.accounts.id.disableAutoSelect لتسجيل الحالة في ملفات تعريف الارتباط. يمنع هذا الحلقة الميتة لتجربة المستخدم. اطّلِع على مقتطف الرمز التالي للطريقة:

google.accounts.id.disableAutoSelect()

ينفّذ مثال الرمز البرمجي التالي إجراء google.accounts.id.disableAutoSelect باستخدام دالة onSignout():

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

الطريقة: google.accounts.id.storeCredential

هذه الطريقة هي برنامج تضمين لطريقة store() في واجهة برمجة التطبيقات المضمّنة في المتصفّح لإدارة بيانات الاعتماد. لذلك، لا يمكن استخدامه إلا لتخزين بيانات اعتماد كلمة المرور. اطّلِع على مثال الرمز البرمجي التالي للطريقة:

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

يمكنك تسجيل دالة رد اتصال onGoogleLibraryLoad. يتم إرسال إشعار بعد تحميل مكتبة JavaScript الخاصة بميزة "تسجيل الدخول باستخدام حساب 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 يحتوي هذا الحقل اختياريًا على رسالة ردّ مفصّلة عن الخطأ.

ناجح

هذا الحقل هو قيمة منطقية يتم ضبطها على "صحيح" إذا نجح طلب إجراء الإبطال أو على "خطأ" في حال تعذّر ذلك.

خطأ

هذا الحقل هو قيمة سلسلة ويحتوي على رسالة خطأ تفصيلية في حال تعذّر طلب إجراء الإبطال، وهو غير محدّد في حال نجاح الطلب.