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

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

خدمة GSI هي الحل الموصى به لربط الحسابات في حال انطباق أي مما يلي:

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

وللتحقق من أن نظام GSI هو الحل المناسب لك، يمكنك الاطّلاع على اختيار نوع ربط الحساب

العبارات الرئيسية

قبل القراءة حول كيفية عمل GSI، تعرّف على المصطلحات التالية:

  • الرمز المميّز لمعرّف Google: هو تأكيد موقَّع على هوية المستخدم التي تحتوي على المعلومات الأساسية في الملف الشخصي للمستخدم في Google (الاسم وعنوان البريد الإلكتروني صورة ملفك الشخصي). الرمز المميز لمعرف Google هو رمز JSON المميّز للويب (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"
}
  • user.verificationStatus: سمة يحدّدها النظام للإشارة إلى ما إذا كانت تضم الجلسة الحالية مستخدمًا معتمدًا.

  • user.accountLinkingStatus: سمة يحدّدها النظام للإشارة إلى ما إذا كانت المستخدم في الجلسة الحالية لديه هوية مرتبطة.

  • مشهد نظام ربط الحسابات: مشهد محدد مسبقًا يتم تنفيذه التأكيد لربط الحسابات، ويمكن تخصيصها ليناسب حالات استخدام معيّنة.

آلية العمل

يكمن التدفق الأساسي لنظام GSI في ما يلي:

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

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

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

يصف هذا القسم المسارات المختلفة التي يمكن أن تحدث من خلال عملية تسجيل الدخول باستخدام حساب Google.

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

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

في هذه الحالة، تنتقل إلى مشهد نظام ربط الحسابات وتقدم مبرر منطقي مخصص. يطلب هذا المشهد من المستخدم الإذن الوصول إلى معلومات الملف الشخصي في Google.

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

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

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

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

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

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