مرجع عميل JavaScript لتسجيل الدخول بحساب Google

يصف هذا المرجع طرق برنامج JavaScript والسمات التي ستستخدمها لتنفيذ "تسجيل الدخول بحساب Google" في تطبيقات الويب.

إذا واجهت أي مشكلة في استخدام المكتبة، يُرجى إبلاغنا بها في مستودع GitHub.

إعداد المصادقة

حمِّل مكتبة النظام الأساسي لـ Google APIs لإنشاء الكائن gapi:

<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>

بعد تحميل مكتبة المنصات، يمكنك تحميل مكتبة auth2:

function init() {
  gapi.load('auth2', function() {
    /* Ready. Make a call to gapi.auth2.init or some other API */
  });
}

gapi.auth2.init(params)

يؤدي هذا الإجراء إلى إعداد كائن GoogleAuth. يجب طلب هذه الطريقة قبل طلب طرق gapi.auth2.GoogleAuth.

عند إعداد كائن GoogleAuth، يمكنك إعداد الكائن باستخدام معرِّف عميل OAuth 2.0 وأي خيارات إضافية تريد تحديدها. وبعد ذلك، إذا سبق للمستخدم تسجيل الدخول، يستعيد عنصر GoogleAuth حالة تسجيل دخول المستخدم من الجلسة السابقة.

الوسيطات
params كائن يحتوي على أزواج المفتاح/القيمة من بيانات إعداد العميل. يمكنك الانتقال إلى gapi.auth2.ClientConfig للاطّلاع على السمات المختلفة التي يمكن ضبطها. مثلاً:
{
  client_id: 'CLIENT_ID.apps.googleusercontent.com'
}
المرتجعات
gapi.auth2.GoogleAuth كائن gapi.auth2.GoogleAuth استخدِم الطريقة then() للحصول على وعود يتم حلّه عند انتهاء كائن gapi.auth2.GoogleAuth من الإعداد.

GoogleAuth.then(onInit، onError)

لاستدعاء الدالة onInit عند إعداد الكائن GoogleAuth بالكامل. إذا ظهر خطأ أثناء الإعداد (يمكن أن يحدث ذلك في المتصفّحات القديمة غير المتوافقة)، سيتم استدعاء الدالة onError بدلاً من ذلك.

الوسيطات
onInit يتم استدعاء الدالة باستخدام الكائن GoogleAuth عند إعدادها بالكامل.
onError يتم استدعاء الدالة مع كائن يحتوي على السمة error، في حال تعذّر إعداد GoogleAuth.
المرتجعات
وعود Promise يتم تنفيذه عند اكتمال الدالة onInit أو رفضه إذا ظهر خطأ في الإعداد. ويتم حلها باستخدام القيمة المعروضة من الدالة onInit، إن توفّرت.

رموز الأخطاء

idpiframe_initialization_failed
تعذّر على Google إعداد إطار iframe مطلوب، بسبب بيئة غير متوافقة مثلاً. ستوفّر السمة details مزيدًا من المعلومات عن الخطأ الذي تم تقديمه.

gapi.auth2.ClientConfig

واجهة تمثّل مَعلمات الإعدادات المختلفة لطريقة gapi.auth2.init.

المعلمات
client_id string يجب ملء هذا الحقل. معرِّف عميل التطبيق، والذي تم العثور عليه وإنشائه في وحدة التحكم في واجهة Google API.
cookie_policy string النطاقات التي سيتم إنشاء ملفات تعريف ارتباط تسجيل الدخول لها. تمثّل هذه السمة معرّف الموارد المنتظم (URI) أو single_host_origin أو none. ويتم ضبط القيمة التلقائية على single_host_origin في حال عدم تحديدها.
scope string النطاقات المطلوب طلبها، كسلسلة مفصولة بمسافات. وتكون اختيارية في حال عدم ضبط fetch_basic_profile على "خطأ".
fetch_basic_profile boolean استرجاع معلومات الملف الشخصي الأساسية للمستخدمين عند تسجيلهم الدخول إضافة "الملف الشخصي" و"البريد الإلكتروني" و"فتح المعرّف" إلى النطاقات المطلوبة. صواب إذا لم يتم تحديده.
hosted_domain string نطاق G Suite الذي يجب أن ينتمي المستخدمون إليه لتسجيل الدخول. هذا بما قابل للتعديل من قِبل العملاء، لذا احرص على إثبات ملكية الموقع الإلكتروني في النطاق المستضاف للمستخدم المعروض. استخدِم GoogleUser.getHostedDomain() على العميل، والمطالبة hd في الرمز المميّز للمعرّف على الخادم لإثبات ملكية النطاق من المتوقّع.
use_fedcm boolean وهذا الإجراء اختياري، ويتم ضبطه تلقائيًا على "True". فعِّل استخدام واجهات برمجة تطبيقات FedCM للمتصفِّح أو أوقِفه أثناء تسجيل الدخول.
ux_mode string وضع تجربة المستخدم (UX) المطلوب استخدامه لتسجيل الدخول. سيتم تلقائيًا فتح مسار الموافقة في نافذة منبثقة. القيمتان الصالحتان هما popup وredirect.
redirect_uri string وفي حال استخدام ux_mode='redirect'، تتيح لك هذه المَعلمة إلغاء redirect_uri التلقائي الذي سيتم استخدامه في نهاية مسار الموافقة. وredirect_uri التلقائي هو عنوان URL الحالي الذي تتم إزالته من مَعلمات طلب البحث وجزء علامة التجزئة.
enable_granular_consent boolean اختياريّ. لتحديد ما إذا كان يجب تفعيل الأذونات الدقيقة. في حال ضبط السياسة على false، سيتم إيقاف أذونات حساب Google الأكثر دقة لمعرّفات عملاء OAuth التي تم إنشاؤها قبل عام 2019. وما مِن تأثير في أرقام تعريف عملاء OAuth التي تم إنشاؤها أثناء عام 2019 أو بعده، لأنّ الأذونات الأكثر دقة يتم تفعيلها دائمًا لها.
plugin_name string اختياريّ. في حال ضبط هذه القيمة، يمكن لمعرّفات العملاء الجديدة التي تم إنشاؤها قبل 29 تموز (يوليو) 2022 استخدام مكتبة Google Platform القديمة. بشكلٍ تلقائي، يتم الآن حظر أرقام تعريف العملاء التي تم إنشاؤها حديثًا من استخدام مكتبة الأنظمة الأساسية، ويجب بدلاً من ذلك استخدام مكتبة "خدمات هوية Google" الأحدث. يمكنك اختيار أي قيمة، ويُنصَح باستخدام اسم وصفي، مثل اسم المنتج أو المكوّنات الإضافية. مثلاً: plugin_name: 'YOUR_STRING_HERE'

المصادقة

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

gapi.auth2.getAuthInstance()

تعرض الكائن GoogleAuth. يجب إعداد الكائن GoogleAuth باستخدام gapi.auth2.init() قبل استدعاء هذه الطريقة.

المرتجعات
gapi.auth2.GoogleAuth كائن gapi.auth2.GoogleAuth ويمكنك استخدام هذا الكائن لاستدعاء طرق gapi.auth2.GoogleAuth.

GoogleAuth.isSignedIn.get()

يعرض ما إذا كان المستخدم الحالي سجّل الدخول أم لا.

المرتجعات
منطقي true إذا كان المستخدم مسجّلاً الدخول، أو false إذا كان المستخدم مسجّلاً الخروج أو لم يتم إعداد الكائن GoogleAuth.

GoogleAuth.isSignedIn.listen(listener)

اطّلِع على التغييرات في حالة تسجيل الدخول للمستخدم الحالي.

الوسيطات
listener دالة تستخدم قيمة منطقية. يمرِّر listen() true إلى هذه الوظيفة عندما يسجِّل المستخدم الدخول ويمرِّر false عندما يسجِّل المستخدم خروجه.

GoogleAuth.signIn()

ويتم تسجيل دخول المستخدم باستخدام الخيارات المحدّدة في gapi.auth2.init().

المرتجعات
وعود يتم توفير Promise مع مثيل GoogleUser عندما يصادق المستخدم النطاقات المطلوبة ويمنحها بنجاح، أو يتم رفضها باستخدام عنصر يحتوي على السمة error في حال حدوث خطأ. راجِع القسم التالي للاطّلاع على رموز الأخطاء.

رموز الخطأ

يمكنك الاطّلاع على GoogleAuth.signIn(options).

GoogleAuth.signIn(options)

تسجِّل دخول المستخدم باستخدام الخيارات المحدّدة.

الوسيطات
options أن تحقق أيًا من التالي:
  • عنصر gapi.auth2.SignInOptions يحتوي على أزواج المفتاح/القيمة من مَعلمات تسجيل الدخول مثال:
    {
      scope: 'profile email'
    }
  • مثال على gapi.auth2.SigninOptionsBuilder. على سبيل المثال:
    options = new gapi.auth2.SigninOptionsBuilder();
    options.setAppPackageName('com.example.app');
    options.setFetchBasicProfile(True);
    options.setPrompt('select_account');
    options.setScope('profile').setScope('email');
المرتجعات
وعود يتم توفير Promise مع مثيل GoogleUser عندما يصادق المستخدم النطاقات المطلوبة ويمنحها بنجاح، أو يتم رفضها باستخدام عنصر يحتوي على السمة error في حال حدوث خطأ (انظر أدناه للاطّلاع على رموز الخطأ).

رموز الخطأ

popup_closed_by_user
أغلق المستخدم النافذة المنبثقة قبل إنهاء عملية تسجيل الدخول.
access_denied
رفض المستخدم منح الإذن بالوصول إلى النطاقات المطلوبة.
immediate_failed
لا يمكن اختيار أي مستخدم تلقائيًا بدون طلب مسار الموافقة. حدث خطأ أثناء استخدام signIn مع الخيار prompt: 'none'. ويجب ألا يكون استخدام هذا الخيار مطلوبًا، لأنّ gapi.auth2.init سيسجِّل دخول المستخدم تلقائيًا إذا سبق تسجيل الدخول خلال جلسة سابقة.

gapi.auth2.SignInOptions

واجهة تمثّل مَعلمات الإعدادات المختلفة لطريقة GoogleAuth.signIn(options)

المعلمات
prompt string يفرض هذا الإعداد وضعًا معيّنًا لتدفق الموافقة. اختياريّ.
القيم المحتملة هي:
  • consent
    يطلب خادم التفويض من المستخدم الموافقة قبل عرض المعلومات على التطبيق.
  • select_account
    يطلب خادم التفويض من المستخدم اختيار حساب على Google. يتيح ذلك للمستخدم الذي لديه حسابات متعددة الاختيار من بين الحسابات المتعددة التي قد يكون لديه جلسات حالية لها.
  • none (إجراء لا يُنصَح به)
    لن يعرض خادم التفويض أي شاشات للمصادقة أو موافقة المستخدم، وسيعرض رسالة خطأ إذا لم يسبق أن تمت مصادقة المستخدم ولم يوافق سابقًا على النطاقات المطلوبة.
    بما أنّ gapi.auth2.init سيُسجِّل دخول المستخدم تلقائيًا إلى التطبيق إذا كان مسجِّلاً الدخول سابقًا، سيتعذّر عادةً طلب signIn({prompt: 'none'}).
scope string النطاقات المطلوب طلبها، كسلسلة مفصولة بمسافات، بالإضافة إلى النطاقات المحدّدة في مَعلمات gapi.auth2.init. وتكون اختيارية في حال عدم ضبط fetch_basic_profile على "خطأ".
ux_mode string وضع تجربة المستخدم (UX) المطلوب استخدامه لتسجيل الدخول. سيتم تلقائيًا فتح مسار الموافقة في نافذة منبثقة. القيمتان الصالحتان هما popup وredirect.
redirect_uri string وفي حال استخدام ux_mode='redirect'، تتيح لك هذه المَعلمة إلغاء redirect_uri التلقائي الذي سيتم استخدامه في نهاية مسار الموافقة. redirect_uri التلقائي هو عنوان URL الحالي الذي تتم إزالته من مَعلمات طلب البحث وجزء علامة التجزئة.

GoogleAuth.signOut()

الخروج من الحساب الحالي من التطبيق.

المرتجعات
وعود Promise يتم الوفاء به عندما يتم تسجيل خروج المستخدم.

GoogleAuth.disconnect()

إبطال جميع النطاقات التي منحها المستخدم.

GoogleAuth.grantofflineAccess(options)

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

الوسيطات
options تمثّل هذه السمة كائن gapi.auth2.OfflineAccessOptions يحتوي على أزواج المفتاح/القيمة من المَعلمات. مثال:
{
  scope: 'profile email'
}
المرتجعات
وعود يتم توفير Promise عندما يمنح المستخدم النطاقات المطلوبة، مع تمرير عنصر يحتوي على رمز التفويض إلى معالِج تنفيذ Promise. مثال:
auth2.grantOfflineAccess().then(function(resp) {
  var auth_code = resp.code;
});

رموز الخطأ

popup_closed_by_user
أغلق المستخدم النافذة المنبثقة قبل إكمال عملية الموافقة.
access_denied
رفض المستخدم منح الإذن بالوصول إلى النطاقات المطلوبة.
immediate_failed
لا يمكن اختيار أي مستخدم تلقائيًا بدون طلب مسار الموافقة. حدث خطأ أثناء استخدام signIn مع الخيار prompt: 'none'. يجب ألا يكون هذا الخيار مطلوبًا لاستخدامه، لأنّ gapi.auth2.init سيسجِّل دخول المستخدم تلقائيًا إذا سبق تسجيل الدخول خلال جلسة سابقة.

gapi.auth2.OfflineAccessOptions

واجهة تمثّل مَعلمات الإعدادات المختلفة لطريقة GoogleAuth.grantOfflineAccess(options).

المعلمات
prompt string يفرض هذا الإعداد وضعًا معيّنًا لتدفق الموافقة. اختياريّ.
القيم المحتملة هي:
  • consent
    يطلب خادم التفويض من المستخدم الموافقة قبل عرض المعلومات على التطبيق.
  • select_account
    يطلب خادم التفويض من المستخدم اختيار حساب على Google. يتيح ذلك للمستخدم الذي لديه حسابات متعددة الاختيار من بين الحسابات المتعددة التي قد يكون لديه جلسات حالية لها.
scope string النطاقات المطلوب طلبها، كسلسلة مفصولة بمسافات، بالإضافة إلى النطاقات المحدّدة في مَعلمات gapi.auth2.init. وتكون اختيارية في حال عدم ضبط fetch_basic_profile على "خطأ".

GoogleAuth.attachClickHandler(container، options، onsuccess، onfailure)

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

الوسيطات
container رقم تعريف العنصر div المطلوب إرفاق معالِج النقرة به، أو مرجع إليه
options كائن يحتوي على أزواج المفتاح/القيمة من المعلمات. يمكنك الاطّلاع على GoogleAuth.signIn().
onsuccess الدالة المطلوب طلبها بعد اكتمال عملية تسجيل الدخول.
onfailure الدالة المطلوب طلبها في حال تعذُّر تسجيل الدخول.

المستخدمون

يمثّل عنصر GoogleUser حساب مستخدم واحدًا. عادةً ما يتم الحصول على كائنات GoogleUser من خلال استدعاء GoogleAuth.currentUser.get().

GoogleAuth.currentUser.get()

تعرض كائن GoogleUser يمثّل المستخدم الحالي. يُرجى العلم أنّه لم يتم ضبط المستخدم الحالي في مثيل GoogleAuth الذي تم إعداده حديثًا. استخدِم طريقة currentUser.listen() أو GoogleAuth.then() للحصول على مثيل GoogleAuth مهيأ.

المرتجعات
GoogleUser المستخدم الحالي

GoogleAuth.currentUser.listen(listener)

الاستماع إلى التغييرات في currentUser.

الوسيطات
listener دالة تستخدم معلمة GoogleUser. تضبط listen هذه الدالة كمثيل GoogleUser عند كل تغيير يؤدّي إلى تعديل currentUser.

GoogleUser.getId()

الحصول على سلسلة المعرّف الفريد للمستخدم

المرتجعات
سلسلة المعرّف الفريد للمستخدم

GoogleUser.isSignedIn()

تعرض القيمة true إذا سجّل المستخدم الدخول.

المرتجعات
منطقي صحيح إذا سجّل المستخدم الدخول

GoogleUser.getHostedDomain()

احصل على نطاق G Suite للمستخدم إذا سجّل الدخول باستخدام حساب G Suite.

المرتجعات
سلسلة نطاق G Suite للمستخدم

GoogleUser.getGrantedScopes()

احصل على النطاقات التي منحها المستخدم كسلسلة مفصولة بمسافات.

المرتجعات
سلسلة النطاقات التي منحها المستخدم

GoogleUser.getBasicProfile()

الحصول على معلومات الملف الشخصي الأساسية للمستخدم.

المرتجعات
gapi.auth2.BasicProfile يمكنك استرداد سمات gapi.auth2.BasicProfile بالطرق التالية:
  • BasicProfile.getId()
  • BasicProfile.getName()
  • BasicProfile.getGivenName()
  • BasicProfile.getFamilyName()
  • BasicProfile.getImageUrl()
  • BasicProfile.getEmail()

GoogleUser.getAuthResponse(includeAuthorizationData)

احصل على كائن الاستجابة من جلسة المصادقة الخاصة بالمستخدم.

الوسيطات
includeAuthorizationData اختياري: قيمة منطقية تحدد ما إذا كان سيتم دائمًا عرض رمز الدخول والنطاقات. وبشكلٍ تلقائي، لا يتم عرض رمز الدخول والنطاقات المطلوبة عندما تكون fetch_basic_profile صحيحة (القيمة التلقائية) ولا يتم طلب نطاقات إضافية.
المرتجعات
gapi.auth2.AuthResponse عنصر gapi.auth2.AuthResponse

GoogleUser.reloadAuthResponse()

تفرض إعادة تحميل رمز الدخول، ثم تعرض وعودًا لـ AuthResponse الجديد.

المرتجعات
Promise تتم عملية Promise التي يتم تلبيتها باستخدام gapi.auth2.AuthResponse الذي تمت إعادة تحميله عند إعادة تحميل رمز OAuth المميز.

gapi.auth2.AuthResponse

تم عرض الاستجابة عند استدعاء طريقة GoogleUser.getAuthResponse(includeAuthorizationData) أو GoogleUser.reloadAuthResponse().

أماكن إقامة
access_token string تم منح رمز الدخول.
id_token string تم منح الرمز المميّز لرقم التعريف.
scope string النطاقات الممنوحة في "رمز الدخول".
expires_in number عدد الثواني المتبقية حتى انتهاء صلاحية رمز الدخول.
first_issued_at number الطابع الزمني الذي منح فيه المستخدم النطاقات المطلوبة لأول مرة.
expires_at number الطابع الزمني الذي ستنتهي فيه صلاحية رمز الدخول.

GoogleUser.hasGrantedScopes(scopes)

تعرض القيمة true إذا منح المستخدم النطاقات المحددة.

الوسيطات
scopes سلسلة من النطاقات مفصولة بمسافات.
المرتجعات
منطقي صحيح إذا تم منح النطاقات

GoogleUser.grant(options)

طلب نطاقات إضافية للمستخدم.

راجِع GoogleAuth.signIn() للاطّلاع على قائمة بالمَعلمات ورمز الخطأ.

GoogleUser.grantofflineAccess(options)

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

الوسيطات
options تمثّل هذه السمة كائن gapi.auth2.OfflineAccessOptions يحتوي على أزواج المفتاح/القيمة من المَعلمات. مثال:
{
  scope: 'profile email'
}

GoogleUser.disconnect()

لإلغاء جميع النطاقات التي منحها المستخدم للتطبيق.

عناصر واجهة المستخدم

gapi.signin2.render(id، options)

يعرض زر تسجيل الدخول في العنصر بالمعرّف المحدّد باستخدام الإعدادات المحددة بواسطة كائن options.

الوسيطات
id معرّف العنصر الذي سيتم عرض زر تسجيل الدخول فيه.
options كائن يحتوي على الإعدادات المطلوب استخدامها لعرض الزر مثلاً:
{
  scope: 'email',
  width: 200,
  height: 50,
  longtitle: true,
  theme: 'dark',
  onsuccess: handleSuccess,
  onfailure: handleFailure
}
يمكنك تحديد الخيارات التالية:
المعلمات
نطاق النطاقات المطلوب طلبها عندما يسجِّل المستخدم دخوله (القيمة التلقائية: profile).
العرض عرض الزر بالبكسل (القيمة التلقائية: 120)
الطول ارتفاع الزر بالبكسل (القيمة التلقائية: 36)
العنوان الطويل اعرض تصنيفات طويلة مثل "تسجيل الدخول باستخدام حساب Google" بدلاً من "تسجيل الدخول" (الإعداد التلقائي: false). وعند استخدام العناوين الطويلة، يجب زيادة عرض الزر عن قيمته التلقائية.
مظهر مظهر اللون للزر: إما light أو dark (القيمة التلقائية: light).
نجاح دالة الاستدعاء المطلوب الاتصال بها عندما يسجّل المستخدم الدخول بنجاح. يجب أن تستخدم هذه الدالة وسيطة واحدة: مثيل لـ gapi.auth2.GoogleUser (الإعداد التلقائي: none).
تعذُّر دالة الاستدعاء التي سيتم طلبها عند تعذُّر تسجيل الدخول. ولا تستخدم هذه الدالة أي وسيطات (القيمة التلقائية: لا شيء).

متقدّمة

gapi.auth2.تفويض(params، callback)

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

في ما يلي بعض حالات الاستخدام التي تكون فيها هذه الطريقة مفيدة:

  • يحتاج تطبيقك إلى طلب نقطة نهاية Google API مرة واحدة فقط، على سبيل المثال، لتحميل فيديوهات YouTube المفضّلة لدى المستخدم في المرة الأولى التي يسجّل فيها الدخول.
  • لدى تطبيقك بنية أساسية خاصة لإدارة الجلسات، ولا يتطلّب سوى رمز المعرّف المميّز مرة واحدة لتحديد هوية المستخدم في الخلفية.
  • يتم استخدام العديد من معرّفات العملاء في الصفحة نفسها.
الوسيطات
params كائن يحتوي على أزواج المفتاح/القيمة من بيانات الإعداد. يمكنك الانتقال إلى gapi.auth2.AuthorizeConfig للاطّلاع على الخصائص المختلفة التي يمكن ضبطها. مثلاً:
{
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}
callback يتم استدعاء دالة مع كائن gapi.auth2.AuthorizeResponse بعد اكتمال الطلب (إما بنجاح أو عند إخفاق).

مثال

gapi.auth2.authorize({
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}, function(response) {
  if (response.error) {
    // An error happened!
    return;
  }
  // The user authorized the application for the scopes requested.
  var accessToken = response.access_token;
  var idToken = response.id_token;
  // You can also now use gapi.client to perform authenticated requests.
});

رموز الخطأ

idpiframe_initialization_failed
تعذّر إعداد إطار iframe مطلوب من Google، على سبيل المثال، بسبب بيئة غير متوافقة. ستوفّر السمة details مزيدًا من المعلومات عن الخطأ الذي تم تقديمه.
popup_closed_by_user
أغلق المستخدم النافذة المنبثقة قبل إنهاء عملية تسجيل الدخول.
access_denied
رفض المستخدم منح الإذن بالوصول إلى النطاقات المطلوبة.
immediate_failed
لا يمكن اختيار أي مستخدم تلقائيًا بدون طلب مسار الموافقة. حدث خطأ أثناء استخدام signIn مع الخيار prompt: 'none'.

gapi.auth2.AuthorizeConfig

واجهة تمثّل مَعلمات الإعدادات المختلفة لطريقة gapi.auth2.authorize

أماكن إقامة
client_id string مَعلمة مطلوبة. معرِّف عميل التطبيق، والذي تم العثور عليه وإنشائه في وحدة التحكم في واجهة Google API.
scope string مَعلمة مطلوبة. النطاقات المطلوب طلبها، كسلسلة مفصولة بمسافات.
response_type string قائمة بنوع الردّ مع الفصل بينها بمسافات. وتكون القيمة التلقائية هي 'permission'. القيم المحتمَلة هي:
  • id_token، لاسترداد الرمز المميّز للمعرّف
  • permission (أو token)، لاسترداد رمز الدخول
  • code، لاسترداد رمز التفويض.
prompt string يفرض هذا الإعداد وضعًا معيّنًا لتدفق الموافقة. القيم المحتمَلة هي:
  • consent
    يطلب خادم التفويض من المستخدم الموافقة قبل عرض المعلومات على التطبيق.
  • select_account
    يطلب خادم التفويض من المستخدم اختيار حساب على Google. يتيح ذلك للمستخدم الذي لديه حسابات متعددة الاختيار من بين الحسابات المتعددة التي قد يكون لديه جلسات حالية لها.
  • none
    لن يعرض خادم التفويض أي شاشات مصادقة أو موافقة مستخدم، وسيعرض رسالة خطأ إذا لم يسبق أن تمت مصادقة المستخدم ولم يوافق سابقًا على النطاقات المطلوبة.
    إذا تم طلب code كنوع استجابة، سيكون الرمز المعروض قابلاً للاستبدال بـ access_token فقط، وليس مقابل refresh_token.
cookie_policy string النطاقات التي سيتم إنشاء ملفات تعريف ارتباط تسجيل الدخول لها. تمثّل هذه السمة معرّف الموارد المنتظم (URI) أو single_host_origin أو none. ويتم ضبط القيمة التلقائية على single_host_origin في حال عدم تحديدها.
hosted_domain string نطاق G Suite الذي يجب أن ينتمي المستخدمون إليه لتسجيل الدخول. هذا بما قابل للتعديل من قِبل العملاء، لذا احرص على إثبات ملكية الموقع الإلكتروني في النطاق المستضاف للمستخدم المعروض.
login_hint string البريد الإلكتروني، أو رقم تعريف المستخدم، للمستخدم لتحديده مسبقًا في عملية تسجيل الدخول. ويكون هذا المحتوى عرضةً لتعديله من قِبل المستخدم، ما لم يتم استخدام prompt: "none".
include_granted_scopes boolean تحدّد هذه السمة ما إذا كنت تريد طلب رمز دخول يتضمّن جميع النطاقات التي منحها المستخدم سابقًا للتطبيق، أو النطاقات المطلوبة فقط في المكالمة الحالية. وتكون القيمة التلقائية هي true.
enable_granular_consent boolean اختياريّ. لتحديد ما إذا كان يجب تفعيل الأذونات الدقيقة. في حال ضبط السياسة على false، سيتم إيقاف أذونات حساب Google الأكثر دقة لمعرّفات عملاء OAuth التي تم إنشاؤها قبل عام 2019. وما مِن تأثير في أرقام تعريف عملاء OAuth التي تم إنشاؤها أثناء عام 2019 أو بعده، لأنّ الأذونات الأكثر دقة يتم تفعيلها دائمًا لها.
plugin_name string اختياريّ. في حال ضبط أرقام تعريف العملاء التي تم إنشاؤها قبل 29 تموز (يوليو) 2022، يمكنها استخدام مكتبة Google Platform. بشكلٍ تلقائي، يتم حظر أرقام تعريف العملاء التي تم إنشاؤها حديثًا من استخدام مكتبة المنصة، وبدلاً من ذلك يجب استخدام المكتبة الأحدث من "خدمات هوية Google". يمكنك اختيار أي قيمة، ويُنصح باستخدام اسم وصفي، مثل اسم المنتج أو المكوّنات الإضافية، ليسهل التعرّف عليها. مثلاً: plugin_name: 'YOUR_STRING_HERE'

gapi.auth2.AuthorizeResponse

تمت إعادة الاستجابة إلى استدعاء طريقة gapi.auth2.authorize.

أماكن إقامة
access_token string تم منح رمز الدخول. ولا تظهر إلا إذا تم تحديد permission أو token في response_type.
id_token string تم منح الرمز المميّز لرقم التعريف. لا تتوفّر هذه السمة إلا إذا تم تحديد id_token في response_type.
code string رمز التفويض الذي تم منحه لا تتوفّر هذه السمة إلا إذا تم تحديد code في response_type.
scope string النطاقات الممنوحة في "رمز الدخول". ولا تظهر إلا إذا تم تحديد permission أو token في response_type.
expires_in number عدد الثواني المتبقية حتى انتهاء صلاحية رمز الدخول. لا يتوفّر العرض إلا إذا تم تحديد permission أو token في response_type.
first_issued_at number الطابع الزمني الذي منح فيه المستخدم النطاقات المطلوبة لأول مرة. ولا تظهر إلا إذا تم تحديد permission أو token في response_type.
expires_at number الطابع الزمني الذي ستنتهي فيه صلاحية رمز الدخول. لا يتوفّر العرض إلا إذا تم تحديد permission أو token في response_type.
error string عند تعذُّر الطلب، يحتوي هذا النص على رمز الخطأ.
error_subtype string عند إخفاق الطلب، يمكن أن يحتوي ذلك على معلومات إضافية لرمز الخطأ الذي يتم عرضه أيضًا.