مرجع عميل 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" و"البريد الإلكتروني" و"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 القديمة. بشكل تلقائي، يتم الآن حظر استخدام أرقام تعريف العميل التي تم إنشاؤها حديثًا من استخدام "مكتبة النظام الأساسي"، ويجب بدلاً من ذلك استخدام مكتبة "خدمات هوية Google" الأحدث. يمكنك اختيار أي قيمة، ونقترح عليك استخدام اسم وصفي مثل اسم المنتج أو المكوِّن الإضافي لتسهيل التعرُّف عليه. مثال: plugin_name: 'YOUR_STRING_HERE'

المصادقة

"GoogleAuth" هي فئة في الإصدار المفرد من Google توفّر طرقًا تتيح للمستخدم تسجيل الدخول باستخدام حساب 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.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)

التنبّه إلى التغييرات في المستخدم الحالي.

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

GoogleUser.getId()

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

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

GoogleUser.isSignedIn()

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

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

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()

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

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

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

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

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

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