دليل مفهوم تسجيل الدخول بحساب Google (Dialogflow)

يوفّر تسجيل الدخول بحساب Google (GSI) لخدمة "مساعد Google" تجربة الربط الأكثر سهولة للمستخدمين، كما أنّه أسهل عملية يمكن للمطوّرين تنفيذها. باستخدام GSI، يمكن أن يطلب الإجراء الخاص بك الوصول إلى الملف الشخصي للمستخدم على Google أثناء محادثة، واستلام اسم المستخدم وعنوان بريده الإلكتروني وصورة ملفه الشخصي إذا وافق المستخدم. يمكن للإجراء الخاص بك بعد ذلك استخدام هذه المعلومات للتحقق مما إذا كان المستخدم لديه حساب Google في نظامك. إذا لم يكن الأمر كذلك، سيسأل الإجراء الخاص بك المستخدم عمّا إذا كان يريد إنشاء حساب جديد في نظامك استنادًا إلى معلومات ملفه الشخصي على Google.

GSI هو الحل المقترَح لربط الحسابات في حال انطبق أيّ مما يلي:

  • ليس لديك نظام مصادقة حالي و/أو تتوقع أن يكون لدى جميع المستخدمين حسابات على Google. على سبيل المثال، إذا كان الإجراء الخاص بك يستهدف "مساعد Google" تحديدًا، من المتوقّع أن يكون لدى جميع المستخدمين حسابات Google.
  • لديك نظام مصادقة حالي وتريد فقط ربط المستخدمين الذين سجّلوا الدخول إلى نظامك باستخدام حساباتهم على Google.

للتحقق من أن GSI هو الحل المناسب لك، يُرجى الاطّلاع على صفحة اختيار نوع ربط الحساب.

المصطلحات الرئيسية

قبل القراءة عن كيفية عمل GSI، تعرف على البنود التالية:

  • الرمز المميز لمعرّف Google: تأكيد موقّع لهوية المستخدم يحتوي على معلومات الملف الشخصي الأساسية للمستخدم في Google (الاسم وعنوان البريد الإلكتروني وصورة الملف الشخصي). الرمز المميز لـ Google ID هو JSON Web Token (JWT).

    في ما يلي مثال على رمز مميّز تم فك ترميزه:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • هدف المساعد في تسجيل الدخول إلى الحساب: هو هدف المساعد الذي تطلبه لطلب عملية ربط الحساب من "مساعد Google". لمزيد من المعلومات، اطّلِع على تسجيل الدخول إلى الحساب.
    • سلسلة السياق: سلسلة مخصّصة تضيفها إلى الغرض من مساعد تسجيل الدخول إلى الحساب لإعلام المستخدم بسبب حاجته إلى ربط حسابه.

آلية العمل

في ما يلي الخطوات الأساسية لخوارزمية GSI:

  1. يطلب الإجراء الخاص بك من المستخدم الموافقة للوصول إلى ملفه الشخصي في Google.
  2. بعد أن يمنح المستخدم موافقته، يتلقّى الإجراء الخاص بك رمزًا مميزًا من Google ID يحتوي على معلومات الملف الشخصي الخاص بالمستخدم على Google.
  3. تحقَّق من الرمز المميّز وفك ترميزه لقراءة محتوى الملف الشخصي. إذا كنت تستخدم مكتبة برامج "المهام مع مساعد Google" لـ Node.js أو مكتبة عملاء Java، تعمل الخدمة على التحقّق من الرمز المميّز وفك ترميزه.
  4. يستخدم الإجراء الخاص بك هذا الرمز المميّز للتحقق من وجود معلومات الملف الشخصي للمستخدم في حساب Google في نظامك.

    1. في حال حدوث ذلك، يكون المستخدم قد سجّل الدخول من قبل إلى نظامك باستخدام حساب Google. يمكن للمستخدم مواصلة المحادثة مع "مساعد Google" مع ربط هويته بحسابه على Google.
    2. وإذا لم يتم ربطه، فيمكن للمستخدم إنشاء حساب جديد في نظامك باستخدام المعلومات التي يتضمنها الرمز المميز لـ Google ID. يمكن للمستخدم بعد ذلك مواصلة المحادثة مع المساعد مع ربط حسابه الجديد.

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

يوضِّح هذا القسم العمليات المختلفة التي يمكن أن تحدث مع ميزة "تسجيل الدخول بحساب Google".

التدفق 1: معلومات المستخدم موجودة في نظامك

يوضِّح الرسم البياني التالي التدفق الشامل الذي يحدث مع GSI عندما تكون معلومات المستخدم متوفّرة في نظامك:

في هذه الحالة، يتم استدعاء الغرض من مساعد actions.intent.SIGN_IN باستخدام سلسلة سياق مخصَّصة لك. يطلب هذا الغرض من المستخدم إذنًا للوصول إلى معلومات ملفه الشخصي على Google.

بعد موافقة المستخدم، يرسل "مساعد Google" طلبًا يتضمّن معلومات الملف الشخصي الخاص بـ user@gmail.com. في هذه الحالة، تتطابق المعلومات الواردة في الرمز المميز لمعرّف Google الخاص بـ user@gmail.com مع حساب في نظامك، لذلك يتم ربط هوية المستخدم في الإجراء الخاص بك تلقائيًا بهذا الحساب. يمكن بعد ذلك الرد التلقائي على الويب قراءة الطلب المعتاد للمستخدم من قاعدة بيانات والرد وفقًا لذلك.

المسار 2: عدم توفّر معلومات المستخدم في نظامك

يوضِّح المخطّط التالي التدفق التام بين الأطراف الذي يحدث مع GSI عندما لا تكون معلومات المستخدم موجودة في نظامك:

في هذه الحالة، لا تتطابق المعلومات الواردة في الرمز المميّز لـ Google ID لـ user@gmail.com مع أي حساب في نظامك، لذا يسأل "مساعد Google" المستخدم ما إذا كان يريد إنشاء حساب جديد. يمكن للمستخدم إكمال عملية إنشاء الحساب بالصوت بدلاً من النقل إلى جهاز خاضع للمراقبة.

عندما يوافق المستخدم على إنشاء حساب، تستخدم خدمتك المعلومات الواردة في الرمز المميّز لرقم التعريف (اسم المستخدم وعنوان بريده الإلكتروني) لإنشاء حساب للمستخدم. بعد إنشاء الحساب، يتم ربط هوية المستخدم في الإجراء الخاص بك بحسابه الجديد على Google.

في هذه الحالة، لن يحصل المستخدم على طلب معتاد لأنه جديد في الخدمة، لذلك يسأل الإجراء الخاص بك عما يريد طلبه. يمكنك أيضًا أن تسأل المستخدم عما إذا كان يرغب في تعيين أحدث ترتيب له كترتيبه المعتاد.