راهنمای مفهومی ورود به سیستم Google (Dialogflow)

Google Sign-In (GSI) برای دستیار بی‌نظیرترین تجربه پیوند را برای کاربران فراهم می‌کند و ساده‌ترین جریان برای توسعه‌دهندگان است. با GSI، Action شما می‌تواند درخواست دسترسی به نمایه Google کاربر شما را در طول مکالمه کند و در صورت رضایت کاربر، نام، آدرس ایمیل و عکس نمایه کاربر را دریافت کند. سپس Action شما می‌تواند از این اطلاعات برای بررسی اینکه آیا کاربر یک حساب Google در سیستم شما دارد یا خیر استفاده کند. اگر نه، Action شما از کاربر می‌پرسد که آیا می‌خواهد یک حساب جدید در سیستم شما بر اساس اطلاعات نمایه Google خود ایجاد کند.

در صورت اعمال هر یک از موارد زیر، GSI راه حل پیشنهادی پیوند حساب است:

  • شما یک سیستم احراز هویت موجود ندارید و/یا انتظار دارید همه کاربران شما یک حساب Google داشته باشند. برای مثال، اگر Action شما به‌طور خاص دستیار را هدف قرار می‌دهد، می‌توانید انتظار داشته باشید که همه کاربرانتان حساب‌های Google داشته باشند.
  • شما یک سیستم احراز هویت موجود دارید و فقط می‌خواهید کاربرانی را که با استفاده از حساب‌های Google خود وارد سیستم شما شده‌اند مرتبط کنید.

برای تأیید اینکه GSI راه حل مناسبی برای شما است، به صفحه نوع پیوند حساب خود را انتخاب کنید.

اصطلاحات کلیدی

قبل از اینکه در مورد نحوه عملکرد GSI بخوانید، با اصطلاحات زیر آشنا شوید:

  • کد شناسه Google: یک ادعای امضا شده از هویت کاربر که حاوی اطلاعات اولیه نمایه Google کاربر (نام، آدرس ایمیل و عکس نمایه آنها) است. توکن Google ID یک نشانه وب 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"
}
  • هدف کمکی ورود به حساب: هدف کمکی که برای درخواست جریان پیوند حساب از دستیار با آن تماس می‌گیرید. برای اطلاعات بیشتر، ورود به حساب را ببینید.
    • رشته زمینه: یک رشته سفارشی که به هدف کمکی ورود به سیستم حساب اضافه می‌کنید و به کاربر می‌گوید چرا به آن نیاز دارید تا حساب خود را پیوند دهد.

چگونه کار می کند

جریان اساسی برای GSI به شرح زیر است:

  1. اقدام شما از کاربر برای دسترسی به نمایه Google خود رضایت می‌خواهد.
  2. پس از رضایت کاربر، Action شما یک رمز Google ID دریافت می کند که حاوی اطلاعات نمایه Google کاربر است.
  3. برای خواندن محتوای نمایه، رمز را اعتبارسنجی و رمزگشایی کنید. اگر از کتابخانه سرویس گیرنده Actions on Google برای Node.js یا کتابخانه سرویس گیرنده جاوا استفاده می کنید، رمز را برای شما تأیید و رمزگشایی می کند.
  4. Your Action از این نشانه برای بررسی اینکه آیا اطلاعات نمایه Google کاربر در سیستم شما وجود دارد یا خیر استفاده می کند.

    1. اگر اینطور باشد، کاربر قبلاً با حساب Google خود وارد سیستم شما شده است. کاربر می‌تواند با هویت مرتبط با حساب Google خود، مکالمه را با دستیار ادامه دهد.
    2. اگر این کار را نکرد، کاربر می تواند با اطلاعات موجود در توکن Google ID یک حساب کاربری جدید در سیستم شما ایجاد کند. سپس کاربر می‌تواند با پیوند دادن حساب جدید خود با دستیار به گفتگو ادامه دهد.

جریان ورود به سیستم Google

این بخش جریان های مختلفی را که می تواند با Google Sign-in رخ دهد، توضیح می دهد.

جریان 1: اطلاعات کاربر در سیستم شما وجود دارد

نمودار زیر جریان انتها به انتها را نشان می دهد که با GSI زمانی که اطلاعات کاربر از قبل در سیستم شما وجود دارد رخ می دهد:

در این مورد، با یک رشته زمینه که سفارشی می‌کنید، actions.intent.SIGN_IN راهنما را فراخوانی می‌کنید. این هدف از کاربر برای دسترسی به اطلاعات نمایه Google خود اجازه می خواهد.

پس از رضایت کاربر، دستیار درخواستی را ارسال می کند که حاوی اطلاعات نمایه برای user@gmail.com است. در این حالت، اطلاعات موجود در رمز Google ID برای user@gmail.com با یک حساب در سیستم شما مطابقت دارد، بنابراین هویت کاربر در Action شما به طور خودکار به آن حساب مرتبط می شود. وب‌هوک شما می‌تواند سفارش معمول کاربر را از پایگاه داده بخواند و بر اساس آن پاسخ دهد.

جریان 2: اطلاعات کاربر در سیستم شما وجود ندارد

نمودار زیر جریان سرتاسری را نشان می‌دهد که با GSI زمانی که اطلاعات کاربر در سیستم شما وجود ندارد رخ می‌دهد:

در این حالت، اطلاعات موجود در رمز Google ID برای user@gmail.com با حسابی در سیستم شما مطابقت ندارد، بنابراین دستیار از کاربر می‌پرسد که آیا مایل به ایجاد حساب جدید است یا خیر. کاربر می تواند فرآیند ایجاد حساب را به جای انتقال به یک دستگاه غربال شده، با صدا کامل کند.

هنگامی که کاربر با ایجاد حساب موافقت می کند، سرویس شما از اطلاعات موجود در شناسه شناسه (نام و آدرس ایمیل کاربر) برای ایجاد حساب کاربری برای کاربر استفاده می کند. پس از ایجاد حساب، هویت کاربر در Action شما به حساب Google جدید وی مرتبط می شود.

در این حالت، کاربر سفارش معمولی ندارد زیرا او در سرویس جدید است، بنابراین Action شما از شما می‌پرسد که چه چیزی می‌خواهد سفارش دهد. همچنین می‌توانید از کاربر بپرسید که آیا می‌خواهد جدیدترین سفارش خود را به عنوان سفارش معمول خود تنظیم کند.