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

يوضح هذا المرجع طرق وسمات عميل جافا سكريبت التي ستستخدمها لتنفيذ تسجيل الدخول بحساب 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. استخدِم الطريقة ()() للحصول على وعد يتم حله عند انتهاء بدء الكائن gapi.auth2.GoogleAuth.

GoogleAuth.the(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 على false.
fetch_basic_profile boolean جلب معلومات الملف الشخصي الأساسية للمستخدمين عند تسجيل الدخول. إضافة 'profile' و'email' و openid' إلى النطاقات المطلوبة. True إذا لم يتم تحديده.
hosted_domain string نطاق G Suite الذي يجب أن ينتمي إليه المستخدمون لتسجيل الدخول. وهذا عرضة للتعديل من قِبل العملاء، لذا احرص على إثبات ملكية موقع النطاق المستضاف للمستخدم الذي تم إرجاعه. استخدِم GoogleUser.getHostDomain() في البرنامج، وستطالب بـ hd في الرمز المميّز لرقم التعريف على الخادم لإثبات ملكية النطاق.
ux_mode string وضع تجربة المُستخدِم المطلوب استخدامه أثناء تسجيل الدخول. وسيؤدي هذا الإجراء تلقائيًا إلى فتح خطوات عملية الموافقة في نافذة منبثقة. القيمتان الصالحتان هما popup وredirect.
redirect_uri string في حال استخدام ux_mode='redirect'، ستسمح لك هذه المعلّمة بتجاوز قيمة redirect_uri التلقائية التي سيتم استخدامها في نهاية عملية الموافقة. إنّ redirect_uri التلقائي هو عنوان URL الحالي الذي يتم نزعه من معامِلات طلب البحث وجزء علامة التجزئة.
plugin_name string اختياريّ. إذا تم ضبط هذه القيمة، يمكن أن تستخدم "معرّفات العملاء" الجديدة التي تم إنشاؤها قبل 29 تموز (يوليو) 2022 مكتبة Google Platform القديمة. بشكلٍ تلقائي، يتم الآن حظر أرقام تعريف العملاء التي تم إنشاؤها حديثًا من استخدام "مكتبة النظام الأساسي"، ويجب بدلاً من ذلك استخدام مكتبة "خدمات 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 على false.
ux_mode string وضع تجربة المُستخدِم المطلوب استخدامه أثناء تسجيل الدخول. وسيؤدي هذا الإجراء تلقائيًا إلى فتح خطوات عملية الموافقة في نافذة منبثقة. القيمتان الصالحتان هما 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 على false.

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)

استمع إلى التغييرات في تطبيق user.

الوسيطات
listener دالة تستخدِم المَعلمة GoogleUser. تعمل listen على تمرير هذه الدالة مثال GoogleUser على كل تغيير يعدّل currentUser.

GoogleUser.getId()

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

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

GoogleUser.isSignedIn()

لعرض true في حال تسجيل المستخدم الدخول.

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

GoogleUser.getHostDomain()

احصل على نطاق 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 سلسلة من النطاقات مفصولة بمسافات.
المرتجعات
منطقي True إذا تم منح النطاقات

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).
width عرض الزر بوحدات البكسل (القيمة التلقائية: 120).
الطول ارتفاع الزر بالبكسل (القيمة التلقائية: 36).
العنوان الطويل يمكنك عرض تصنيفات طويلة، مثل "تسجيل الدخول باستخدام حساب Google" بدلاً من "تسجيل الدخول" (الخيار التلقائي: false). وعند استخدام عناوين طويلة، يجب زيادة عرض الزر وفقًا للإعدادات التلقائية.
مظهر مظهر اللون للزر: إما light أو dark (القيمة التلقائية: light).
onsuccess دالة رد الاتصال المطلوب الاتصال بها عندما يسجِّل المستخدم دخوله بنجاح. يجب أن تأخذ هذه الدالة وسيطة واحدة: مثيل لـ gapi.auth2.GoogleUser (القيمة التلقائية: لا شيء).
فشل دالة رد الاتصال التي يتم استدعاؤها عند تعذُّر تسجيل الدخول. لا تستخدم هذه الدالة أي وسيطات (القيمة التلقائية: لا شيء).

مزايا متقدّمة

gapi.auth2.authorized(params, callback)

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

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

  • يحتاج تطبيقك إلى طلب نقطة نهاية Google API مرة واحدة فقط، على سبيل المثال لتحميل مقاطع فيديو YouTube المفضلة للمستخدم في المرة الأولى التي يسجّل فيها الدخول.
  • يحتوي تطبيقك على بنية أساسية خاصة به لإدارة الجلسة، ويتطلب رمز ID المميز مرة واحدة لتحديد المستخدم في الخلفية.
  • ويتم استخدام العديد من أرقام تعريف العميل في الصفحة نفسها.
الوسيطات
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 Required. معرِّف عميل التطبيق، والذي يتم العثور عليه وإنشائه في Google Developers Console.
scope string Required. النطاقات المطلوب طلبها، كسلسلة محددة بمسافات.
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" الأساسية. بشكل تلقائي، يتم حظر استخدام "معرِّفات العملاء" التي تم إنشاؤها حديثًا في "مكتبة النظام الأساسي"، وبدلاً من ذلك يجب استخدام مكتبة "خدمات هوية 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 عند تعذُّر الطلب، يمكن أن يحتوي هذا على معلومات إضافية لرمز الخطأ الذي تم عرضه أيضًا.