تصف هذه الصفحة المرجعية واجهة برمجة التطبيقات 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مرة واحدة حتى إذا كنت تستخدم وحدات متعددة (مثل "النقرة الواحدة" والزر المخصّص والإبطال وما إلى ذلك) في صفحة الويب نفسها. - في حال استدعاء طريقة
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 الوسيط عندما يغلق المستخدمون ميزة "بنقرة واحدة" يدويًا. |
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
إذا كنت بحاجة إلى عرض ميزة "بنقرة واحدة" في النطاق الرئيسي ونطاقاته الفرعية، عليك تمرير النطاق الرئيسي إلى هذا الحقل ليتم استخدام ملف تعريف ارتباط واحد للحالة المشتركة. اطّلِع على الجدول التالي لمزيد من المعلومات:
| النوع | مطلوب | مثال |
|---|---|---|
| سلسلة | اختياري | 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
يحدّد هذا الحقل ما إذا كان يجب تفعيل تجربة المستخدم المحسّنة لميزة "نقرة واحدة" على المتصفّحات التي تتيح ميزة "منع التتبُّع الذكي" (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، قد لا تظهر واجهة المستخدم الخاصة بطلب "نقرة واحدة". لتلقّي إشعارات بشأن حالة واجهة المستخدم في لحظات مختلفة، يمكنك تمرير دالة لتلقّي إشعارات حالة واجهة المستخدم.
يتم إرسال الإشعارات في الأوقات التالية:
- لحظة العرض: يحدث ذلك بعد استدعاء طريقة
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>
نوع البيانات: PromptMomentNotification
يسرد الجدول التالي طرق نوع البيانات PromptMomentNotification وأوصافها:
| الطريقة | |
|---|---|
isDisplayMoment() |
تعرض هذه الإشارة true إذا ظهرت رسالة المطالبة "بنقرة واحدة".ملاحظة: عند تفعيل FedCM، لا يكون هذا الإشعار متاحًا. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM. |
isDisplayed() |
تعرض true إذا كان نوع اللحظة هو
PromptMoment.DISPLAY وتم عرض طلب
"نقرة واحدة".ملاحظة: عند تفعيل FedCM، لا يكون هذا الإشعار متاحًا. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM. |
isNotDisplayed() |
تعرض هذه الدالة true إذا كان نوع اللحظة هو
PromptMoment.DISPLAY ولم يتم عرض طلب
"بنقرة واحدة".ملاحظة: عند تفعيل FedCM، لا يكون هذا الإشعار متاحًا. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM. |
getNotDisplayedReason() |
السبب المفصّل لعدم عرض واجهة المستخدم في ما يلي القيم المحتمَلة:
|
isSkippedMoment() |
تعرض هذه الطريقة true إذا كان نوع اللحظة هو
PromptMoment.SKIPPEDملاحظة: عند تفعيل FedCM، تكون هذه الطريقة متاحة جزئيًا. وعلى وجه الخصوص، لا يتيح استخدام سبب التخطّي user_cancel. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة
نقل البيانات إلى FedCM.
|
getSkippedReason() |
السبب المفصّل لتخطّي اللحظة في ما يلي القيم المحتمَلة:
user_cancel. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM.
|
isDismissedMoment() |
يتم عرض true إذا كان نوع اللحظة هو
PromptMoment.DISMISSED.ملاحظة: عند تفعيل FedCM، تكون هذه الطريقة متاحة بالكامل. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة نقل البيانات إلى FedCM. |
getDismissedReason() |
السبب المفصّل للرفض في ما يلي القيم المحتمَلة:
|
getMomentType() |
عرض سلسلة لنوع اللحظة في ما يلي القيم المحتمَلة:
|
نوع البيانات: 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 |
مستخدم سبق له منح الموافقة نقر على ميزة "بنقرة واحدة" في متصفّحات 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 |
|
التعبئة: #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 |
|
signup_with |
|
continue_with |
|
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 |
|
center |
|
العرض
الحد الأدنى لعرض الزر بالبكسل الحد الأقصى للعرض هو 400 بكسل.
اطّلِع على الجدول التالي لمزيد من المعلومات:
| النوع | مطلوب | مثال |
|---|---|---|
| سلسلة | اختياري | width: "400" |
locale
اختياريّ. يتم عرض نص الزر باستخدام الإعدادات المحلية المحدّدة، وإلا سيتم استخدام الإعدادات التلقائية
لحساب 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...") }
في هذا المثال، يتم تسجيل الرسالة تم النقر على زر "تسجيل الدخول باستخدام حساب 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 |
يحتوي هذا الحقل اختياريًا على رسالة ردّ مفصّلة عن الخطأ. |
ناجح
هذا الحقل هو قيمة منطقية يتم ضبطها على "صحيح" إذا نجح طلب إجراء الإبطال أو على "خطأ" في حال تعذّر ذلك.
خطأ
هذا الحقل هو قيمة سلسلة ويحتوي على رسالة خطأ تفصيلية في حال تعذّر طلب إجراء الإبطال، وهو غير محدّد في حال نجاح الطلب.