مسیر ادغام خود را انتخاب کنید
مسیری را انتخاب کنید که به بهترین وجه با نیازهای شما مطابقت داشته باشد:
| مسیر | بهترین برای | بیشتر بدانید |
|---|---|---|
| پروتکل تجارت جهانی (UCP) | بازرگانان و خرده فروشان. | اسناد UCP |
| اتصال حساب استاندارد | خانه هوشمند، تلویزیون و یوتیوب. | اسناد |
پیوند حساب، دارندگان حساب گوگل را قادر میسازد تا به سرعت، یکپارچه و ایمن به سرویسهای شما متصل شوند. شما میتوانید پیوند حساب گوگل را برای به اشتراک گذاشتن دادههای کاربر از پلتفرم خود با برنامهها و سرویسهای گوگل پیادهسازی کنید.
پروتکل امن OAuth 2.0 به شما امکان میدهد حساب گوگل کاربر را با خیال راحت به حساب او در پلتفرم خود پیوند دهید و از این طریق به برنامهها و دستگاههای گوگل اجازه دسترسی به سرویسهای خود را بدهید.
کاربران میتوانند حسابهای خود را به هم متصل یا از هم جدا کنند و در صورت تمایل با استفاده از قابلیت «پیوند حساب گوگل»، یک حساب جدید در پلتفرم شما ایجاد کنند.
موارد استفاده
برخی از دلایل پیادهسازی لینک حساب گوگل عبارتند از:
دادههای کاربر را از پلتفرم خود با برنامهها و سرویسهای گوگل به اشتراک بگذارید.
با استفاده از پروتکل تجارت جهانی (UCP) با Google Shopping و سطوح هوش مصنوعی (جستجو، Gemini) ادغام شوید.
محتوای ویدیویی و فیلم خود را با استفاده از Google TV پخش کنید.
دستگاههای متصل به خانه هوشمند گوگل را با استفاده از برنامه گوگل هوم و دستیار گوگل، با دستور «هی گوگل چراغها را روشن کن» مدیریت و کنترل کنید.
با استفاده از اقدامات محاورهای ، مثلاً «سلام گوگل، غذای همیشگی من را از استارباکس سفارش بده»، تجربهها و قابلیتهای سفارشیسازیشدهی دستیار گوگل را برای کاربر ایجاد کنید.
به کاربران این امکان را بدهید که با مشاهده پخش زنده واجد شرایط در یوتیوب، پس از پیوند دادن حساب گوگل خود به یک حساب همکار پاداش، پاداش کسب کنند.
حسابهای جدید را هنگام ثبتنام با دادههای مشترک و توافقی از نمایه حساب گوگل، از قبل پر کنید.
قابلیتها و الزامات
ماتریس زیر، پشتیبانی و توصیهها را برای هر جریان پیوند تعریف میکند.
| جریان پیوند | ویژگیهای استاندارد | ویژگیهای UCP |
|---|---|---|
| تلنگر برنامه | توصیه شده | توصیه شده |
| لینکدهی ساده | توصیه شده | توصیه شده |
| لینکدهی OAuth | الزامی (جایگزین) | الزامی (جایگزین) |
| اواوت ۲.۱ | توصیه شده | توصیه شده |
با تعریف محدودههای سفارشی برای به اشتراک گذاشتن فقط دادههای ضروری، حریم خصوصی کاربر را بهبود بخشید، و با تعریف واضح نحوه استفاده از دادههای آنها، اعتماد کاربر را افزایش دهید.
دسترسی به دادهها و سرویسهای میزبانیشده روی پلتفرم شما میتواند با قطع ارتباط حسابها لغو شود. پیادهسازی یک نقطه پایانی اختیاری برای لغو توکن به شما امکان میدهد تا با رویدادهای آغازشده توسط گوگل همگام بمانید، در حالی که محافظت متقابل حسابها (RISC) به شما امکان میدهد تا هرگونه رویداد قطع ارتباط که در پلتفرم شما رخ میدهد را به گوگل اطلاع دهید.
جریانهای پیوند حساب
سه جریان لینک کردن حساب گوگل وجود دارد که همگی مبتنی بر OAuth هستند و شما را ملزم به مدیریت یا کنترل نقاط پایانی مجوز و تبادل توکن سازگار با OAuth 2.0 میکنند.
در طول فرآیند پیوند، پس از اخذ رضایت صاحبان حساب برای پیوند دادن حسابهایشان و اشتراکگذاری دادهها، برای هر حساب گوگل، توکنهای دسترسی به گوگل صادر میکنید.
لینکدهی OAuth
این جریان لینکدهی OAuth است که کاربران را برای لینک دادن به وبسایت شما هدایت میکند. کاربر برای ورود به حساب کاربری خود به وبسایت شما هدایت میشود. پس از ورود به سیستم، کاربر با اشتراکگذاری دادههای خود در سرویس شما با گوگل موافقت میکند. در آن مرحله، حساب گوگل کاربر و سرویس شما به هم متصل میشوند.
لینک OAuth از کد مجوز و جریانهای OAuth ضمنی پشتیبانی میکند. سرویس شما باید میزبان یک نقطه پایانی مجوز سازگار با OAuth 2.0 برای جریان ضمنی باشد و هنگام استفاده از جریان کد مجوز، باید هم نقطه پایانی مجوز و هم نقطه پایانی تبادل توکن را در معرض نمایش قرار دهد.

شکل ۱. اتصال حساب کاربری روی گوشی کاربر با اتصال OAuth
پیوند معکوس برنامه مبتنی بر OAuth ('App Flip')
یک جریان OAuth که کاربران را برای لینک دادن به برنامه شما ارسال میکند.
قابلیت App Flip Linking مبتنی بر OAuth، کاربران را در حین جابجایی بین برنامههای تلفن همراه اندروید یا iOS تأیید شده شما و پلتفرم گوگل راهنمایی میکند تا تغییرات پیشنهادی دسترسی به دادهها را بررسی کرده و رضایت خود را برای پیوند حساب کاربریشان در پلتفرم شما با حساب گوگلشان اعلام کند. برای فعال کردن App Flip، سرویس شما باید از قابلیت OAuth linking یا ورود مبتنی بر OAuth با Google Linking با استفاده از جریان کد مجوز پشتیبانی کند.
App Flip هم برای اندروید و هم برای iOS پشتیبانی میشود.
چگونه کار میکند:
برنامه گوگل بررسی میکند که آیا برنامه شما روی دستگاه کاربر نصب شده است یا خیر:
- اگر برنامه پیدا شود، کاربر به برنامه شما "منتقل" میشود. برنامه شما رضایت کاربر را برای پیوند دادن حساب کاربری به گوگل دریافت میکند و سپس به سطح گوگل "برمیگردد".
- اگر برنامه پیدا نشود یا در طول فرآیند پیوند معکوس برنامه خطایی رخ دهد، کاربر به جریان پیوند ساده یا OAuth هدایت میشود.

شکل ۲. پیوند حساب کاربری در گوشی کاربر با App Flip
پیوند ساده مبتنی بر OAuth ('ساده')
ورود با گوگل مبتنی بر OAuth، پیونددهی ساده، ورود با گوگل را به پیونددهی OAuth اضافه میکند و به کاربران این امکان را میدهد که فرآیند پیونددهی را بدون ترک صفحه گوگل تکمیل کنند و در نتیجه، اصطکاک و عدم موفقیت را کاهش میدهد. پیونددهی ساده مبتنی بر OAuth با ترکیب ورود با گوگل با پیونددهی OAuth، بهترین تجربه کاربری را با ورود به سیستم، ایجاد حساب کاربری و پیونددهی حساب کاربری بدون مشکل ارائه میدهد. سرویس شما باید از نقاط پایانی مجوز و تبادل توکن سازگار با OAuth 2.0 پشتیبانی کند. علاوه بر این، نقطه پایانی تبادل توکن شما باید از ادعاهای JSON Web Token (JWT) پشتیبانی کند و اهداف check ، create و get را پیادهسازی کند.
چگونه کار میکند:
گوگل حساب کاربری را تأیید میکند و این اطلاعات را به شما منتقل میکند:
- اگر حسابی برای کاربر در پایگاه داده شما وجود داشته باشد، کاربر با موفقیت حساب گوگل خود را به حساب خود در سرویس شما پیوند میدهد.
- اگر هیچ حسابی برای کاربر در پایگاه داده شما وجود نداشته باشد، کاربر میتواند یا یک حساب کاربری 3P جدید با اطلاعات ادعا شدهای که گوگل ارائه میدهد ایجاد کند: ایمیل، نام و تصویر پروفایل ، یا اینکه وارد سیستم شود و با یک ایمیل دیگر لینک شود (این کار مستلزم آن است که آنها با استفاده از لینک OAuth به سرویس شما وارد شوند).

شکل ۳. اتصال حساب کاربری روی گوشی کاربر با استفاده از قابلیت اتصال ساده
از کدام جریان باید استفاده کنید؟
ما توصیه میکنیم همه جریانها را پیادهسازی کنید تا مطمئن شوید کاربران بهترین تجربه لینکسازی را دارند. جریانهای Streamlined و App flip اصطکاک لینکسازی را کاهش میدهند زیرا کاربران میتوانند فرآیند لینکسازی را در چند مرحله بسیار کم انجام دهند. جریان لینکسازی OAuth کمترین میزان تلاش را دارد و نقطه شروع خوبی است و پس از آن میتوانید جریانهای لینکسازی دیگر را اضافه کنید.
کار با توکنها
لینک کردن حساب گوگل بر اساس استاندارد صنعتی OAuth 2.0 انجام میشود.
شما پس از دریافت رضایت صاحبان حساب برای پیوند دادن حسابهایشان و اشتراکگذاری دادهها، برای هر حساب گوگل، توکنهای دسترسی به گوگل صادر میکنید.
令牌类型
OAuth 2.0 使用称为令牌的字符串在用户代理、客户端应用和 OAuth 2.0 服务器之间进行通信。
在帐号关联期间,可以使用三种类型的 OAuth 2.0 令牌:
授权代码 。一种短期令牌,可以交换为访问令牌和刷新令牌。出于安全考虑,Google 会调用您的授权端点来获取一次性或短期代码。
访问令牌 。一种令牌,用于授予持有者对资源的访问权限。为了限制因丢失此令牌而可能造成的风险,此令牌的生命周期有限,通常会在大约一小时后过期。
刷新令牌 。一种长期令牌,当访问令牌过期时,可以交换为新的访问令牌。当您的服务与 Google 集成时,此令牌仅由 Google 存储和使用。Google 会调用您的令牌交换端点,以将刷新令牌交换为访问令牌,而访问令牌又用于访问用户数据。
令牌处理
在集群环境和客户端-服务器交换中,竞争条件可能会导致在使用令牌时出现复杂的时序和错误处理场景。 例如:
- 您收到有关新访问令牌的请求,并签发了新的访问令牌。同时,您收到有关使用之前未过期的访问令牌访问您服务资源的请求。
- Google 尚未收到(或永远不会收到)您的刷新令牌回复。与此同时,之前有效的刷新令牌在 Google 的请求中使用。
由于集群中运行的异步服务、网络行为或其他方式,请求和回复可能会以任何顺序到达,或者根本不会到达。
无法保证您的令牌处理系统和 Google 的令牌处理系统之间以及内部的即时且完全一致的共享状态。在短时间内,多个有效且未过期的令牌可能会在系统内或跨系统共存。为了最大限度地减少对用户的负面影响,我们建议您执行以下操作:
- 接受未过期的访问令牌,即使在签发新令牌后也是如此。
- 使用 刷新令牌轮替的替代方案。
- 支持多个同时有效的访问令牌和刷新令牌。出于安全考虑,您应限制令牌数量和令牌生命周期。
维护和服务中断处理
在维护期间或计划外中断期间,Google 可能无法调用您的授权端点或令牌交换端点来获取访问令牌和刷新令牌。
您的端点应返回 503 错误代码和空正文。在这种情况下,Google 会在有限的时间内重试失败的令牌交换请求。前提是 Google 稍后能够获取刷新令牌和访问令牌,否则用户将无法看到失败的请求。
如果用户发起的访问令牌请求失败,则会导致显示错误。如果使用隐式 OAuth 2.0 流程,则用户需要重试关联失败。
建议
有很多解决方案可以最大限度地减少维护影响。您可以考虑以下选项:
维护现有服务,并将有限数量的请求路由到新更新的服务。仅在确认预期功能后才迁移所有请求。
减少维护期间的令牌请求数量:
将维护期限制为小于访问令牌生命周期。
暂时延长访问令牌生命周期:
- 将令牌生命周期延长到大于维护期。
- 等待访问令牌生命周期的两倍时长,以便用户将短期令牌交换为长期令牌。
- 进入维护期。
- 使用
503错误代码和空正文响应令牌请求。 - 退出维护期。
- 将令牌生命周期缩短回正常水平。
پیوند مداوم
اتصال پایدار یک الزام اصلی برای یکپارچهسازیهای پایدار است. این امر تضمین میکند که حسابهای کاربری حتی در هنگام خرابیهای گذرای شبکه یا بهروزرسانیهای دورهای اعتبارنامهها، همچنان متصل باقی بمانند.
برای پیادهسازی پیوند پایدار، از رویکرد «پنجره کشویی» استفاده کنید: به جای چرخاندن Refresh Token موجود ، انقضای آن را تمدید کنید (به بخش ۶ RFC 6749 مراجعه کنید). این کار از شرایط رقابتی و قطع ارتباط ناخواسته که میتواند در صورت صدور Refresh Token جدید اما عدم دریافت یا ذخیره موفقیتآمیز آن توسط گوگل رخ دهد، جلوگیری میکند.
ثبت نام در گوگل
برای فعال کردن اتصال حساب، به جزئیات تنظیمات OAuth 2.0 شما و اشتراکگذاری اعتبارنامهها نیاز داریم. برای جزئیات بیشتر به بخش ثبتنام مراجعه کنید.