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

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

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

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

تحميل مكتبة النظام الأساسي لواجهات 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
تعذّر إعداد إطار iframe المطلوب من Google، على سبيل المثال، بسبب بيئة غير متوافقة. تقدّم السمة details مزيدًا من المعلومات حول الخطأ المطروح.

gapi.auth2.ClientConfig

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

المَعلمات
client_id string مطلوبة. معرِّف العميل للتطبيق، ويتم العثور عليه وإنشاؤه في Google Developers Console.
cookie_policy string النطاقات التي سيتم إنشاء ملفات تعريف ارتباط تسجيل الدخول لها. إما معرّف الموارد المنتظم (URI) أو single_host_origin أو none ويتم ضبط القيمة تلقائيًا على single_host_origin في حال عدم تحديدها.
scope string النطاقات المطلوب طلبها، كسلسلة محدَّدة بمسافات. وتكون اختيارية إذا لم يتم ضبط fetch_basic_profile على "خطأ".
fetch_basic_profile boolean جلب معلومات الملف الشخصي الأساسية للمستخدمين عند تسجيل الدخول. تتم إضافة "profile" (الملف الشخصي) و"email" و"openid" إلى النطاقات المطلوبة. صحيح إذا لم يتم تحديده.
hosted_domain string نطاق G Suite الذي يجب أن ينتمي المستخدمون إليه لتسجيل الدخول. هذا الموقع قابل للتعديل من قِبل العملاء، لذا احرص على إثبات ملكية موقع النطاق المستضاف للمستخدم الذي تم عرضه. استخدِم GoogleUser.getHostedDomain() على البرنامج ومطالبة hd في الرمز المميّز لرقم التعريف على الخادم لإثبات ملكية النطاق.
ux_mode string وضع "تجربة المستخدم" المطلوب استخدامه في إجراءات تسجيل الدخول سيؤدي ذلك تلقائيًا إلى فتح مسار الموافقة في نافذة منبثقة. القيمتان الصالحتان هما popup وredirect.
redirect_uri string في حال استخدام ux_mode='redirect'، تتيح لك هذه المَعلمة إلغاء redirect_uri التلقائي الذي سيتم استخدامه في نهاية عملية الموافقة. القيمة التلقائية redirect_uri هي عنوان URL الحالي الذي تتم إزالته من معلَمات طلب البحث وجزء علامة التجزئة.
plugin_name string اختياريّ. في حال ضبط هذه القيمة، ستتمكن معرّفات العملاء الجديدة التي تم إنشاؤها قبل 29 تموز (يوليو) 2022 من استخدام إصدار Google Platform Library القديم. يتم تلقائيًا حظر أرقام تعريف العملاء التي تم إنشاؤها حديثًا من استخدام "مكتبة النظام الأساسي"، وعليك استخدام مكتبة "خدمات Google Identity" الأحدث بدلاً من ذلك. يمكنك اختيار أي قيمة، ويُنصح باستخدام اسم وصفي مثل اسم المنتج أو المكوّن الإضافي لتسهيل التحديد. مثلاً: 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 وضع "تجربة المستخدم" المطلوب استخدامه في إجراءات تسجيل الدخول سيؤدي ذلك تلقائيًا إلى فتح مسار الموافقة في نافذة منبثقة. القيمتان الصالحتان هما popup وredirect.
redirect_uri string في حال استخدام ux_mode='redirect'، تتيح لك هذه المَعلمة إلغاء الإعداد التلقائي "redirect_uri" الذي سيتم استخدامه في نهاية عملية الموافقة. القيمة التلقائية redirect_uri هي عنوان URL الحالي الذي يتم إزالته من معلَمات طلب البحث وجزء علامة التجزئة.

GoogleAuth.signOut()

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

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

GoogleAuth.disconnect()

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

GoogleAuth.grantTLSAccess(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)

الاستماع إلى التغييرات في المستخدم الحالي.

الوسيطات
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.grant GroupsAccess(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).
فشل دالة معاودة الاتصال التي سيتم طلبها عند تعذّر تسجيل الدخول. ولا تستخدم هذه الدالة أي وسيطات (الخيار التلقائي: 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 Developers Console.
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.
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 عندما يتعذّر الطلب، قد يشتمل هذا الإجراء على معلومات إضافية لرمز الخطأ الذي تم عرضه أيضًا.