بررسی اجمالی

پیوند دادن حساب، دارندگان حساب Google را قادر می‌سازد تا سریع، یکپارچه و ایمن به خدمات شما متصل شوند. می‌توانید برای اشتراک‌گذاری داده‌های کاربر از پلتفرم خود با برنامه‌ها و سرویس‌های Google، پیوند حساب Google را پیاده‌سازی کنید.

پروتکل ایمن OAuth 2.0 به شما امکان می دهد حساب Google کاربر را به طور ایمن با حساب او در پلتفرم خود پیوند دهید و از این طریق به برنامه ها و دستگاه های Google اجازه دسترسی به خدمات خود را بدهید.

کاربران می‌توانند حساب‌های خود را پیوند یا لغو پیوند دهند و به‌صورت اختیاری یک حساب جدید در پلتفرم شما با پیوند دادن حساب Google ایجاد کنند.

موارد استفاده کنید

برخی از دلایل اجرای پیوند حساب Google عبارتند از:

  • داده‌های کاربر را از پلتفرم خود با برنامه‌ها و سرویس‌های Google به اشتراک بگذارید.

  • محتوای ویدیویی و فیلم خود را با استفاده از Google TV پخش کنید.

  • با استفاده از برنامه Google Home و Google Assistant، «Hey Google turn on the lights»، دستگاه‌های متصل به خانه هوشمند Google را مدیریت و کنترل کنید.

  • با کنش‌های مکالمه ، تجربه‌ها و عملکردهای سفارشی دستیار Google را برای کاربر ایجاد کنید.

  • پس از پیوند دادن حساب Google خود به حساب شریک پاداش، کاربران را قادر می سازد تا با مشاهده پخش جریانی زنده واجد شرایط در YouTube جوایزی کسب کنند.

  • در حین ثبت‌نام، حساب‌های جدید را از قبل با داده‌های به اشتراک‌گذاشته‌شده از نمایه حساب Google پر کنید.

ویژگی های پشتیبانی شده

این ویژگی‌ها توسط پیوند حساب Google پشتیبانی می‌شوند:

  • به سرعت و به راحتی داده های خود را با استفاده از جریان ضمنی پیوند OAuth به اشتراک بگذارید.

  • با جریان کد مجوز پیوند OAuth امنیت بهبود یافته را ارائه دهید.

  • کاربران موجود را به سیستم وارد کنید یا کاربران جدید تأیید شده Google را در پلتفرم خود ثبت نام کنید، رضایت آنها را جلب کنید و داده‌ها را به‌طور ایمن با پیوندهای ساده به اشتراک بگذارید.

  • با App Flip اصطکاک را کاهش دهید. از یک برنامه مطمئن Google، یک ضربه به طور ایمن برنامه تأیید شده Android یا iOS شما را باز می‌کند و یک ضربه رضایت کاربر را می‌دهد و حساب‌ها را پیوند می‌دهد.

  • بهبود حریم خصوصی کاربر با تعریف محدوده های سفارشی برای به اشتراک گذاری فقط داده های ضروری، افزایش اعتماد کاربران با تعریف واضح نحوه استفاده از داده های آنها.

  • دسترسی به داده ها و خدمات میزبانی شده در پلتفرم شما را می توان با قطع پیوند حساب ها لغو کرد. پیاده‌سازی نقطه پایانی لغو اختیاری رمز به شما امکان می‌دهد با رویدادهای آغاز شده توسط Google همگام بمانید، در حالی که محافظت از حساب‌های متقابل (RISC) به شما امکان می‌دهد هر رویداد قطع پیوندی را که در پلتفرم شما رخ می‌دهد به Google اطلاع دهید.

جریان های پیوند حساب

3 جریان پیوند حساب Google وجود دارد که همگی مبتنی بر OAuth هستند و از شما می‌خواهند مجوزهای مطابق با OAuth 2.0 و نقاط پایانی تبادل رمز را مدیریت یا کنترل کنید.

در طول فرآیند پیوند، پس از کسب رضایت دارندگان حساب برای پیوند دادن حساب‌هایشان و اشتراک‌گذاری داده‌ها، نشانه‌های دسترسی به Google را برای حساب‌های Google فردی صادر می‌کنید.

پیوند OAuth ("Web OAuth")

این جریان اصلی OAuth است که کاربران را برای پیوند به وب سایت شما می فرستد. کاربر برای ورود به حساب کاربری خود به وب سایت شما هدایت می شود. پس از ورود به سیستم، کاربر با به اشتراک گذاری داده های خود در سرویس شما با Google موافقت می کند. در آن مرحله، حساب Google کاربر و سرویس شما پیوند داده می شوند.

OAuth Linking از کد مجوز و جریان های OAuth ضمنی پشتیبانی می کند. سرویس شما باید میزبان یک نقطه پایانی مجوز سازگار با OAuth 2.0 برای جریان ضمنی باشد، و باید هنگام استفاده از جریان کد مجوز، هر دو نقطه پایان مجوز و مبادله رمز را نشان دهد.

شکل 1 . پیوند دادن حساب در تلفن کاربر با Web OAuth

پیوند دادن برنامه برگردان مبتنی بر OAuth («برگشت برنامه»)

یک جریان OAuth که کاربران را برای پیوند به برنامه شما می فرستد.

App Flip Linking مبتنی بر OAuth کاربران را هنگام حرکت بین برنامه‌های تلفن همراه تأییدشده Android یا iOS شما و پلتفرم Google راهنمایی می‌کند تا تغییرات پیشنهادی دسترسی به داده‌ها را بررسی کنند و رضایت آنها را برای پیوند دادن حساب خود در پلتفرم شما با حساب Google خود اعلام کنند. برای فعال کردن App Flip، سرویس شما باید از OAuth Linking یا Google Sign-in Linking مبتنی بر OAuth با استفاده از جریان کد مجوز پشتیبانی کند.

App Flip هم برای اندروید و هم برای iOS پشتیبانی می شود.

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

برنامه Google بررسی می کند که آیا برنامه شما روی دستگاه کاربر نصب شده است یا خیر:

  • اگر برنامه پیدا شود، کاربر به برنامه شما «تگردان» می شود. برنامه شما رضایت کاربر را برای پیوند دادن حساب با Google جمع‌آوری می‌کند و سپس به صفحه Google برمی‌گردد.
  • اگر برنامه پیدا نشد یا خطایی در طول فرآیند پیوند دادن به برنامه رخ داد، کاربر به جریان OAuth ساده یا Web OAuth هدایت می‌شود.

شکل 2 . پیوند دادن حساب در تلفن کاربر با App Flip

پیوند کارآمد مبتنی بر OAuth ("کارآمد")

Google Sign-In مبتنی بر OAuth پیوند ساده، Google Sign-In را در بالای پیوند OAuth اضافه می کند، و به کاربران امکان می دهد فرآیند پیوند را بدون خروج از سطح Google کامل کنند و در نتیجه اصطکاک و افت را کاهش دهند. پیوند کارآمد مبتنی بر OAuth بهترین تجربه کاربری را با ورود بی‌وقفه، ایجاد حساب و پیوند حساب با ترکیب Google Sign-in با پیوند OAuth ارائه می‌دهد. سرویس شما باید از مجوز سازگار با OAuth 2.0 و نقاط پایانی تبادل رمز پشتیبانی کند. علاوه بر این، نقطه پایانی مبادله رمز شما باید از اظهارات JSON Web Token (JWT) پشتیبانی کند و check ، create ، و get ، اهداف را اجرا کند.

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

Google حساب کاربری را تأیید می کند و این اطلاعات را به شما می دهد:

  • اگر یک حساب کاربری برای کاربر در پایگاه داده شما وجود داشته باشد، کاربر با موفقیت حساب Google خود را با حساب خود در سرویس شما پیوند می دهد.
  • اگر هیچ حساب کاربری برای کاربر در پایگاه داده شما وجود نداشته باشد، کاربر می تواند یک حساب جدید 3P با اطلاعاتی که Google ارائه می دهد ایجاد کند: ایمیل، نام، و تصویر نمایه ، یا انتخاب کند که وارد سیستم شوید و با ایمیل دیگری پیوند دهید (این به آنها نیاز دارد. برای ورود به سرویس خود از طریق Web OAuth).

شکل 3 . پیوند دادن حساب در تلفن کاربر با پیوند ساده

از کدام جریان باید استفاده کرد؟

توصیه می‌کنیم همه جریان‌ها را پیاده‌سازی کنید تا اطمینان حاصل شود که کاربران بهترین تجربه پیوند را دارند. جریان های تلنگر ساده و برنامه اصطکاک پیوند را کاهش می دهد زیرا کاربران می توانند فرآیند پیوند را در مراحل بسیار کمی تکمیل کنند. پیوند Web OAuth کمترین سطح تلاش را دارد و مکان خوبی برای شروع است که پس از آن می توانید به جریان های پیوندی دیگر اضافه کنید.

کار با توکن ها

پیوند دادن حساب Google بر اساس استاندارد صنعتی OAuth 2.0 است.

شما پس از کسب رضایت دارندگان حساب برای پیوند دادن حساب‌هایشان و اشتراک‌گذاری داده‌ها، نشانه‌های دسترسی به Google را برای حساب‌های Google فردی صادر می‌کنید.

Token types

OAuth 2.0 uses strings called tokens to communicate between the user agent, the client application, and the OAuth 2.0 server.

Three types of OAuth 2.0 tokens can be used during account linking:

  • Authorization code. A short-lived token that can be exchanged for an access and a refresh token. For security purposes, Google calls your authorization endpoint to obtain a single use or very short-lived code.

  • Access token. A token that grants the bearer access to a resource. To limit exposure that could result from the loss of this token, it has a limited lifetime, usually expiring after an hour or so.

  • Refresh token. A long-lived token that can be exchanged for a new access token when an access token expires. When your service integrates with Google, this token is exclusively stored and used by Google. Google calls your token exchange endpoint to exchange refresh tokens for access tokens, which are in turn used to access user data.

Token handling

Race conditions in clustered environments and client-server exchanges can result in complex timing and error handling scenarios when working with tokens. For example:

  • You receive a request for a new access token, and you issue a new access token. Concurrently, you receive a request for access to your service's resource using the previous, unexpired access token.
  • Your refresh token reply is yet to be received (or is never received) by Google. Meanwhile, the previously valid refresh token is used in a request from Google.

Requests and replies can arrive in any order, or not at all due to asynchronous services running in a cluster, network behavior, or other means.

Immediate and fully consistent shared state both within, and between, your and Google's token handling systems cannot be guaranteed. Multiple valid, unexpired tokens can coexist within or across systems short period of time. To minimize negative user impact we recommend you do the following:

  • Accept unexpired access tokens, even after a newer token is issued.
  • Use alternatives to Refresh Token Rotation.
  • Support multiple, concurrently valid access and refresh tokens. For security, you should limit the number of tokens and token lifetime.
Maintenance and outage handling

During maintenance or unplanned outages Google might be unable to call your authorization or token exchange endpoints to obtain access and refresh tokens.

Your endpoints should respond with a 503 error code and empty body. In this case, Google retries failed token exchange requests for a limited time. Provided that Google is later able to obtain refresh and access tokens, failed requests are not visible to users.

Failing requests for an access token result in a visible error, if initiated by a user. Users will be required to retry linking failures if the implicit OAuth 2.0 flow is used.

Recommendations

There are many solutions to minimize maintenance impact. Some options to consider:

  • Maintain your existing service and route a limited number of requests to your newly updated service. Migrate all requests only after confirming expected functionality.

  • Reduce the number of token requests during the maintenance period:

    • Limit maintenance periods to less than the access token lifetime.

    • Temporarily increase the access token lifetime:

      1. Increase token lifetime to greater than maintenance period.
      2. Wait twice the duration of your access token lifetime, enabling users to exchange short lived tokens for longer duration tokens.
      3. Enter maintenance.
      4. Respond to token requests with a 503 error code and empty body.
      5. Exit maintenance.
      6. Decrease token lifetime back to normal.

ثبت نام در گوگل

ما به جزئیات راه‌اندازی OAuth 2.0 و اشتراک‌گذاری اعتبارنامه‌ها برای فعال کردن پیوند حساب نیاز داریم. برای جزئیات به ثبت نام مراجعه کنید.