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" }
user.verificationStatus
: ویژگی تنظیم شده توسط سیستم برای نشان دادن اینکه آیا جلسه فعلی کاربر تایید شده دارد یا خیر.user.accountLinkingStatus
: ویژگی تنظیم شده توسط سیستم برای نشان دادن اینکه آیا کاربر در جلسه فعلی هویت پیوندی دارد یا خیر.صحنه سیستم پیوند حساب: صحنه از پیش تعریف شده ای که جریان تایید را برای پیوند دادن حساب ها پیاده سازی می کند و می تواند متناسب با موارد استفاده خاص سفارشی شود.
چگونه کار می کند
جریان اساسی برای GSI به شرح زیر است:
- اقدام شما از کاربر برای دسترسی به نمایه Google خود رضایت میخواهد.
- پس از رضایت کاربر، Action شما یک رمز Google ID دریافت می کند که حاوی اطلاعات نمایه Google کاربر است.
- برای خواندن محتوای نمایه، رمز را اعتبارسنجی و رمزگشایی کنید. اگر از کتابخانه Actions on Google Fulfillment برای Node.js استفاده می کنید، رمز را برای شما اعتبارسنجی و رمزگشایی می کند.
Your Action از این نشانه برای بررسی اینکه آیا اطلاعات نمایه Google کاربر در سیستم شما وجود دارد یا خیر استفاده می کند.
- اگر اینطور باشد، کاربر قبلاً با حساب Google خود وارد سیستم شما شده است. کاربر میتواند با هویت مرتبط با حساب Google خود، مکالمه را با دستیار ادامه دهد.
اگر این کار را نکرد، کاربر می تواند با اطلاعات موجود در توکن Google ID یک حساب کاربری جدید در سیستم شما ایجاد کند. سپس کاربر میتواند با پیوند دادن حساب جدید خود با دستیار به گفتگو ادامه دهد.
جریان ورود به سیستم Google
این بخش جریان های مختلفی را که می تواند با Google Sign-in رخ دهد، توضیح می دهد.
جریان 1: اطلاعات کاربر در سیستم شما وجود دارد
نمودار زیر جریان انتها به انتها را نشان می دهد که با GSI زمانی که اطلاعات کاربر از قبل در سیستم شما وجود دارد رخ می دهد:
در این مورد، به صحنه سیستم پیوند حساب منتقل میشوید و یک منطق سفارشی ارائه میدهید. این صحنه از کاربر برای دسترسی به اطلاعات نمایه گوگل خود اجازه می خواهد.
پس از رضایت کاربر، دستیار درخواستی را ارسال می کند که حاوی اطلاعات نمایه برای user@gmail.com
است. در این حالت، اطلاعات موجود در رمز Google ID برای user@gmail.com
با یک حساب در سیستم شما مطابقت دارد، بنابراین هویت کاربر در Action شما به طور خودکار به آن حساب مرتبط می شود. وبهوک شما میتواند سفارش معمول کاربر را از پایگاه داده بخواند و بر اساس آن پاسخ دهد.
جریان 2: اطلاعات کاربر در سیستم شما وجود ندارد
نمودار زیر جریان سرتاسری را نشان میدهد که با GSI زمانی که اطلاعات کاربر در سیستم شما وجود ندارد رخ میدهد:
در این مورد، اطلاعات موجود در شناسه Google برای user@gmail.com
با حسابی در سیستم شما مطابقت ندارد، بنابراین Assistant از کاربر میپرسد که آیا مایل است حساب جدیدی ایجاد کند. کاربر می تواند فرآیند ایجاد حساب را به جای انتقال به یک دستگاه غربال شده، با صدا کامل کند.
هنگامی که کاربر با ایجاد حساب موافقت می کند، سرویس شما از اطلاعات موجود در شناسه شناسه (نام و آدرس ایمیل کاربر) برای ایجاد حساب کاربری برای کاربر استفاده می کند. پس از ایجاد حساب، هویت کاربر در Action شما به حساب Google جدید وی مرتبط می شود.
در این حالت، کاربر سفارش معمولی ندارد زیرا او در سرویس جدید است، بنابراین Action شما میپرسد که چه چیزی میخواهد سفارش دهد. همچنین میتوانید از کاربر بپرسید که آیا میخواهد جدیدترین سفارش خود را به عنوان سفارش معمول خود تنظیم کند.