Привязка аккаунта Google к App Flip на базе OAuth

基于 OAuth 的应用快速关联 (App Flip) 关联功能可让用户快速将其在您的身份验证系统中的账号关联到其 Google 账号。 如果用户在发起账户关联过程时手机上已安装您的应用,系统会顺畅地将他们转到您的应用以获取用户授权。

这种方法可提供更快的账户关联过程,因为用户无需重新输入用户名和密码进行身份验证;相反,App Flip 会利用用户在您的应用中的账号凭据。用户将其 Google 账号与您的应用关联后,便可利用您开发的任何集成。

您可以为 iOS 和 Android 应用设置 App Flip。

此图显示了用户将其 Google 账号与您的身份验证系统相关联的步骤。第一张屏幕截图显示了用户如何选择您的应用(如果其 Google 账号已与您的应用相关联)。第二张屏幕截图显示了用户将其 Google 账号与您的应用相关联的确认信息。第三张屏幕截图显示了 Google 应用中已成功关联的用户账号。
图 1.用户手机上使用 App Flip 进行账号关联。

要求

如需实现 App Flip,您必须满足以下要求:

  • 您必须拥有 Android 或 iOS 应用。
  • 您必须拥有、管理和维护支持 OAuth 2.0 授权代码流程的 OAuth 2.0 服务器。

基于 OAuth 的 App Flip 流程

以下序列图详细说明了用户、Google 应用、您的应用和您的授权服务器之间针对 App Flip 的交互。

用户 Google 应用 您的应用 Google 服务器 您的授权 服务器 1. 发起关联 2. 深层链接到您的应用 3. 显示意见征求屏幕 4. 用户授予意见征求 5. 获取授权代码 6. authorization_code 7. 返回到 Google 应用 8. 将代码传递给 Google 服务器 9. 令牌交换 (POST) 10. access_token, refresh_token 11. 存储用户令牌 12. 访问用户资源
图 2.App Flip 流程中的事件序列。 如果提供了授权代码,则令牌交换将以 服务器到服务器的方式进行,与基于浏览器的 OAuth 关联流程中的方式相同。

角色和职责

下表定义了 App Flip 流程中执行者的角色和职责。

执行者 / 组件 GAL 角色 职责
Google 应用 / 服务器 OAuth 客户端 发起账户关联过程,触发到您的移动应用深层链接,将授权代码交换为令牌,并安全地存储这些令牌以访问您服务的 API。
您的应用 授权代理 对用户进行身份验证(通常使用现有应用凭据), 获取意见征求,并从您的服务器检索授权代码。
您的授权服务器 授权服务器 验证授权代码和刷新令牌,并向 Google 服务器颁发访问 令牌。

设计准则

本部分介绍了应用翻转账号关联同意屏幕的设计要求和建议。在 Google 调用您的应用后,您的应用会向用户显示同意屏幕。

要求

  1. 您必须告知用户,其账号将与 Google 关联,而非与 Google Home 或 Google 助理等特定 Google 产品关联。

建议

建议您执行以下操作:

  1. 显示 Google 的隐私权政策。在意见征求屏幕上添加指向 Google 隐私权政策的链接。

  2. 要分享的数据。使用简洁明了的语言告知用户 Google 需要哪些用户数据以及原因。

  3. 明确的号召性用语。在同意屏幕上提供清晰的号召性用语,例如“同意并关联”。这是因为用户需要了解他们必须与 Google 分享哪些数据才能关联其账号。

  4. 能够拒绝或取消。如果用户选择不关联,请提供一种供用户返回、拒绝或取消的方式。

  5. 能够解除关联。提供一种可供用户取消关联的机制,例如指向您平台上的账号设置的网址。或者,您也可以添加指向 Google 账号的链接,以便用户管理其关联的账号。

  6. 能够更改用户账号。建议用户切换账号的方法。如果用户倾向于使用多个账号,此功能尤其有用。

    • 如果用户必须关闭同意屏幕才能切换账号,请向 Google 发送可恢复的错误,以便用户可以通过 OAuth 关联和隐式流程登录所需账号。
  7. 添加您的徽标。在权限请求页面上显示公司徽标。 根据样式指南放置徽标。如果您还想显示 Google 的徽标,请参阅徽标和商标。

此图显示了一个同意屏幕示例,其中包含在设计用户同意屏幕时应遵循的各项要求和建议。
图 2. 账号关联意见征求界面设计指南。

Внедрите функцию App Flip в свои приложения.

Для реализации App Flip необходимо изменить код авторизации пользователя в вашем приложении, чтобы он принимал прямые ссылки от Google.

Чтобы добавить поддержку App Flip в ваше Android-приложение, следуйте инструкциям в руководстве по внедрению Android .

Чтобы добавить поддержку App Flip в ваше iOS-приложение, следуйте инструкциям в руководстве по внедрению iOS .

Тестовое приложение Flip

Моделирование App Flip может быть выполнено с использованием примеров и тестовых приложений до того, как станут доступны проверенные приложения для производственной среды и работающий сервер OAuth 2.0.

В процессе App Flip приложение Google сначала откроет ваше приложение, которое затем запросит у вашего сервера OAuth 2.0 ответ с кодом авторизации, а на заключительном этапе ответ будет возвращен приложению Google.

Предварительные требования

Чтобы имитировать работу приложения Google и запустить интент, который активирует ваше приложение, загрузите и установите инструмент App Flip Test Tool для Android и iOS .

Загрузите и установите демонстрационный пример App Flip Sample для Android и iOS , чтобы смоделировать работу вашего приложения, и выберите тип ответа OAuth 2.0.

Последовательность тестов

  1. Откройте инструмент App Flip Test Tool.
  2. Нажмите Try Flip! , чтобы запустить демонстрационное приложение App Flip.
  3. Выберите ответ с помощью переключателей в приложении Sample.
  4. Нажмите « Send , чтобы отправить в инструмент тестирования имитированный ответ OAuth 2.0.
  5. Проверьте сообщения журнала инструмента тестирования на наличие кода авторизации или подробной информации об ошибке.

Производственные испытания

Приложение App Flip можно протестировать в рабочей среде после завершения регистрации и реализации сервера OAuth 2.0.

Для автоматизированного тестирования рекомендуется использовать одну учетную запись Google и адрес электронной почты, предназначенный для выполнения конкретной задачи .

Состояние связанных учетных записей можно просмотреть в разделе «Связанные учетные записи» , войдя в систему под учетной записью Google. Отсюда же можно отвязать учетные записи между повторными проверками.

При желании вы можете использовать архитектуру RISC для программного удаления ссылки и уведомления Google об изменении.