پیوند حساب، دارندگان حساب گوگل را قادر میسازد تا به سرعت، یکپارچه و ایمن به سرویسهای شما متصل شوند. شما میتوانید پیوند حساب گوگل را برای به اشتراک گذاشتن دادههای کاربر از پلتفرم خود با برنامهها و سرویسهای گوگل پیادهسازی کنید.
پروتکل امن OAuth 2.0 به شما امکان میدهد حساب گوگل کاربر را با خیال راحت به حساب او در پلتفرم خود پیوند دهید و از این طریق به برنامهها و دستگاههای گوگل اجازه دسترسی به سرویسهای خود را بدهید.
کاربران میتوانند حسابهای خود را به هم متصل یا از هم جدا کنند و در صورت تمایل با استفاده از قابلیت «پیوند حساب گوگل»، یک حساب جدید در پلتفرم شما ایجاد کنند.
موارد استفاده
برخی از دلایل پیادهسازی لینک حساب گوگل عبارتند از:
دادههای کاربر را از پلتفرم خود با برنامهها و سرویسهای گوگل به اشتراک بگذارید.
محتوای ویدیویی و فیلم خود را با استفاده از Google TV پخش کنید.
دستگاههای متصل به خانه هوشمند گوگل را با استفاده از برنامه گوگل هوم و دستیار گوگل، با دستور «هی گوگل چراغها را روشن کن» مدیریت و کنترل کنید.
با استفاده از اقدامات محاورهای ، مثلاً «سلام گوگل، غذای همیشگی من را از استارباکس سفارش بده»، تجربهها و قابلیتهای سفارشیسازیشدهی دستیار گوگل را برای کاربر ایجاد کنید.
به کاربران این امکان را بدهید که با مشاهده پخش زنده واجد شرایط در یوتیوب، پس از پیوند دادن حساب گوگل خود به یک حساب همکار پاداش، پاداش کسب کنند.
حسابهای جدید را هنگام ثبتنام با دادههای مشترک و توافقی از نمایه حساب گوگل، از قبل پر کنید.
ویژگیهای پشتیبانیشده
این ویژگیها توسط پیوند حساب گوگل پشتیبانی میشوند:
با استفاده از جریان ضمنی OAuth Linking، دادههای خود را به سرعت به اشتراک بگذارید.
با جریان کد مجوز OAuth Linking، امنیت بهبود یافتهای را فراهم کنید.
کاربران فعلی را وارد سیستم کنید یا کاربران جدید تأیید شده توسط گوگل را در پلتفرم خود ثبت نام کنید، رضایت آنها را کسب کنید و با استفاده از قابلیت لینکدهی ساده ، دادهها را به صورت ایمن به اشتراک بگذارید.
با App Flip، اصطکاک را کاهش دهید. از یک برنامهی مورد اعتماد گوگل، با یک لمس، برنامهی اندروید یا iOS تأیید شدهی شما به صورت ایمن باز میشود و با یک لمس، رضایت کاربر جلب شده و حسابها به هم متصل میشوند.
با تعریف محدودههای سفارشی برای به اشتراک گذاشتن فقط دادههای ضروری، حریم خصوصی کاربر را بهبود بخشید، و با تعریف واضح نحوه استفاده از دادههای آنها، اعتماد کاربر را افزایش دهید.
دسترسی به دادهها و سرویسهای میزبانیشده روی پلتفرم شما میتواند با قطع ارتباط حسابها لغو شود. پیادهسازی یک نقطه پایانی اختیاری برای لغو توکن به شما امکان میدهد تا با رویدادهای آغازشده توسط گوگل همگام بمانید، در حالی که محافظت متقابل حسابها (RISC) به شما امکان میدهد تا هرگونه رویداد قطع ارتباط که در پلتفرم شما رخ میدهد را به گوگل اطلاع دهید.
جریانهای پیوند حساب
سه جریان لینک کردن حساب گوگل وجود دارد که همگی مبتنی بر OAuth هستند و شما را ملزم به مدیریت یا کنترل نقاط پایانی مجوز و تبادل توکن سازگار با OAuth 2.0 میکنند.
در طول فرآیند پیوند، پس از اخذ رضایت صاحبان حساب برای پیوند دادن حسابهایشان و اشتراکگذاری دادهها، برای هر حساب گوگل، توکنهای دسترسی به گوگل صادر میکنید.
لینکدهی OAuth ('Web OAuth')
این جریان اصلی OAuth است که کاربران را برای لینک دادن به وبسایت شما هدایت میکند. کاربر برای ورود به حساب کاربری خود به وبسایت شما هدایت میشود. پس از ورود به سیستم، کاربر با اشتراکگذاری دادههای خود در سرویس شما با گوگل موافقت میکند. در آن مرحله، حساب گوگل کاربر و سرویس شما به هم متصل میشوند.
OAuth Linking از کد مجوز و جریانهای OAuth ضمنی پشتیبانی میکند. سرویس شما باید میزبان یک نقطه پایانی مجوز سازگار با OAuth 2.0 برای جریان ضمنی باشد و هنگام استفاده از جریان کد مجوز، باید هم نقطه پایانی مجوز و هم نقطه پایانی تبادل توکن را در معرض نمایش قرار دهد.

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

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

شکل ۳. اتصال حساب کاربری روی گوشی کاربر با استفاده از قابلیت اتصال ساده
از کدام جریان باید استفاده کنید؟
ما توصیه میکنیم همه جریانها را پیادهسازی کنید تا مطمئن شوید کاربران بهترین تجربه لینکسازی را دارند. جریانهای Streamlined و App flip اصطکاک لینکسازی را کاهش میدهند زیرا کاربران میتوانند فرآیند لینکسازی را در چند مرحله بسیار کم انجام دهند. لینکسازی Web OAuth کمترین میزان تلاش را دارد و نقطه شروع خوبی است و پس از آن میتوانید جریانهای لینکسازی دیگر را اضافه کنید.
با توکنها کار کنید
لینک کردن حساب گوگل بر اساس استاندارد صنعتی OAuth 2.0 انجام میشود.
شما پس از دریافت رضایت صاحبان حساب برای پیوند دادن حسابهایشان و اشتراکگذاری دادهها، برای هر حساب گوگل، توکنهای دسترسی به گوگل صادر میکنید.
انواع توکن
OAuth 2.0 از رشته هایی به نام توکن برای برقراری ارتباط بین عامل کاربر، برنامه مشتری و سرور OAuth 2.0 استفاده می کند.
سه نوع توکن OAuth 2.0 را می توان در حین پیوند حساب استفاده کرد:
کد مجوز . یک توکن کوتاه مدت که می توان آن را با یک توکن دسترسی و به روز رسانی مبادله کرد. برای اهداف امنیتی، Google با نقطه پایانی مجوز شما تماس می گیرد تا یک کد یکبار مصرف یا بسیار کوتاه مدت را دریافت کند.
نشانه دسترسی توکنی که به حامل اجازه دسترسی به یک منبع را می دهد. برای محدود کردن قرار گرفتن در معرض که ممکن است در نتیجه از دست دادن این توکن ایجاد شود، طول عمر محدودی دارد که معمولاً پس از یک ساعت یا بیشتر منقضی میشود.
نشانه تازه کردن . یک توکن با عمر طولانی که می توان آن را با یک نشانه دسترسی جدید مبادله کرد، زمانی که یک نشانه دسترسی منقضی شد. وقتی سرویس شما با Google ادغام می شود، این توکن منحصراً توسط Google ذخیره و استفاده می شود. Google نقطه پایانی تبادل توکن شما را برای مبادله توکنهای تازهسازی برای توکنهای دسترسی فراخوانی میکند که به نوبه خود برای دسترسی به دادههای کاربر استفاده میشوند.
مدیریت توکن
شرایط مسابقه در محیط های خوشه ای و مبادلات مشتری-سرور می تواند منجر به زمان بندی پیچیده و سناریوهای رسیدگی به خطا هنگام کار با توکن ها شود. به عنوان مثال:
- شما یک درخواست برای یک نشانه دسترسی جدید دریافت می کنید و یک نشانه دسترسی جدید صادر می کنید. همزمان، درخواستی برای دسترسی به منبع سرویس خود با استفاده از رمز دسترسی منقضی نشده قبلی دریافت می کنید.
- پاسخ نشانه بهروزرسانی شما هنوز توسط Google دریافت نشده است (یا هرگز دریافت نشده است). در همین حال، رمز تازهسازی معتبر قبلی در درخواستی از Google استفاده میشود.
درخواستها و پاسخها میتوانند به هر ترتیبی دریافت شوند، یا اصلاً به دلیل سرویسهای ناهمزمان در حال اجرا در یک خوشه، رفتار شبکه یا ابزارهای دیگر، دریافت نشوند.
وضعیت اشتراک گذاری فوری و کاملاً سازگار در داخل و بین سیستم های مدیریت توکن شما و Google نمی تواند تضمین شود. چندین توکن معتبر و منقضی نشده می توانند در مدت زمان کوتاهی در داخل یا در سراسر سیستم وجود داشته باشند. برای به حداقل رساندن تأثیر منفی کاربر، توصیه می کنیم موارد زیر را انجام دهید:
- توکن های دسترسی منقضی نشده را حتی پس از صدور توکن جدیدتر بپذیرید.
- از گزینه های جایگزین برای Refresh Token Rotation استفاده کنید.
- پشتیبانی از چندین توکن معتبر و همزمان معتبر. برای امنیت، باید تعداد توکنها و طول عمر توکنها را محدود کنید.
تعمیر و نگهداری و رسیدگی به خاموشی
در طول تعمیر و نگهداری یا قطعهای برنامهریزی نشده ممکن است Google نتواند با مجوز یا نقاط پایانی مبادله رمز شما تماس بگیرد تا به توکنها دسترسی پیدا کند و بهروزرسانی شود.
نقاط پایانی شما باید با کد خطای 503 و متن خالی پاسخ دهند. در این مورد، Google برای مدت محدودی درخواستهای مبادله توکن ناموفق را تکرار میکند. به شرطی که گوگل بعداً بتواند به نوسازی و دسترسی به نشانهها دست یابد، درخواستهای ناموفق برای کاربران قابل مشاهده نیستند.
درخواستهای ناموفق برای نشانه دسترسی منجر به خطای قابل مشاهده میشود، اگر توسط کاربر آغاز شود. در صورت استفاده از جریان OAuth 2.0 ضمنی، از کاربران خواسته میشود که دوباره خطاهای پیوند را امتحان کنند.
توصیه ها
راه حل های زیادی برای به حداقل رساندن تأثیر تعمیر و نگهداری وجود دارد. برخی از گزینه ها برای در نظر گرفتن:
سرویس موجود خود را حفظ کنید و تعداد محدودی از درخواست ها را به سرویس جدید به روز شده خود هدایت کنید. همه درخواستها را تنها پس از تأیید عملکرد مورد انتظار منتقل کنید.
کاهش تعداد درخواست های توکن در طول دوره نگهداری:
دوره های نگهداری را به کمتر از طول عمر رمز دسترسی محدود کنید.
به طور موقت طول عمر رمز دسترسی را افزایش دهید:
- طول عمر توکن را به بیشتر از دوره نگهداری افزایش دهید.
- دو برابر طول عمر توکن دسترسی خود صبر کنید و به کاربران امکان می دهد توکن های کوتاه مدت را با توکن های طولانی تر مبادله کنند.
- تعمیر و نگهداری را وارد کنید.
- به درخواست های توکن با کد خطای
503و بدنه خالی پاسخ دهید. - خروج از تعمیر و نگهداری
- طول عمر توکن را به حالت عادی کاهش دهید.
ثبت نام در گوگل
برای فعال کردن اتصال حساب، به جزئیات تنظیمات OAuth 2.0 شما و اشتراکگذاری اعتبارنامهها نیاز داریم. برای جزئیات بیشتر به بخش ثبتنام مراجعه کنید.