مرجع عميل 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 Promise يتم تنفيذه عند onInit اكتملت الدالة أو تم رفضها في حال ظهور خطأ في الإعداد. يتم حلها باستخدام التي تم إرجاعها من الدالة onInit، إن وجدت.

رموز الأخطاء

idpiframe_initialization_failed
تعذّر إعداد إطار iframe مطلوب من Google، بسبب عدم توافق محددة. ستوفّر السمة 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 جلب حسابات المستخدمين المعلومات الأساسية للملف الشخصي عند تسجيل الدخول. إضافة "الملف الشخصي" و"البريد الإلكتروني" أو "openid" للنطاقات المطلوبة. صواب إذا لم يتم تحديده.
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 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 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 وضع تجربة المستخدم (UX) المطلوب استخدامه لتسجيل الدخول. سيتم فتح مسار الموافقة تلقائيًا في نافذة منبثقة. القيمتان الصالحتان هما popup وredirect.
redirect_uri string وفي حال استخدام ux_mode='redirect'، تتيح لك هذه المَعلمة إلغاء redirect_uri التلقائي الذي سيتم استخدامه في نهاية عملية الموافقة التدفق. redirect_uri التلقائي هو عنوان URL الحالي الذي تمت إزالته من طلب البحث. المعلمات وجزء التجزئة.

GoogleAuth.signOut()

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

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

GoogleAuth.disconnect()

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

GoogleAuth.grantOfflineAccess(options)

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

الوسيطات
options gapi.auth2.OfflineAccessOptions يحتوي على أزواج المفتاح/القيمة من المعاملات. مثال:
{
  scope: 'profile email'
}
المرتجعات
Promise يتم توفير 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)

الاستماع إلى التغييرات في 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 (القيمة التلقائية: بلا).
تعذُّر دالة الاستدعاء التي سيتم طلبها عند تعذُّر تسجيل الدخول. هذه الدالة لا تأخذ أي وسيطات (default: 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، تصبح نتائج البحث بدقة أكبر. سيتم إيقاف أذونات الحساب لأرقام تعريف عملاء OAuth التي تم إنشاؤها قبل. 2019 ما مِن تأثير لمعرّفات عملاء OAuth التي تم إنشاؤها أثناء عام 2019 أو بعده، وذلك منذ وسيتم دائمًا تمكين الأذونات الأكثر دقة لهم.
plugin_name string اختياريّ. في حال ضبطها، يمكن لمعرّفات العملاء التي تم إنشاؤها قبل 29 تموز (يوليو) 2022 استخدام Google Platform Library. يتم تلقائيًا حظر أرقام تعريف العملاء التي تم إنشاؤها حديثًا من استخدام مكتبة المنصة وأن يستخدم بدلاً من ذلك الإصدار الأحدث مكتبة خدمات الهوية. يمكنك اختيار أي قيمة، كاسم وصفي يوصى باستخدام اسم المنتج أو المكوِّن الإضافي لتسهيل التعرف عليه. مثلاً: 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 عند تعذُّر الطلب، قد تحتوي هذه البيانات على معلومات إضافية إلى رمز الخطأ أيضًا. عاد.