基于 OAuth 的应用快速关联 (App Flip) 关联功能可让用户快速将其在您的身份验证系统中的账号关联到其 Google 账号。 如果用户在发起账户关联过程时手机上已安装您的应用,系统会顺畅地将他们转到您的应用以获取用户授权。
这种方法可提供更快的账户关联过程,因为用户无需重新输入用户名和密码进行身份验证;相反,App Flip 会利用用户在您的应用中的账号凭据。用户将其 Google 账号与您的应用关联后,便可利用您开发的任何集成。
您可以为 iOS 和 Android 应用设置 App Flip。
要求
如需实现 App Flip,您必须满足以下要求:
- 您必须拥有 Android 或 iOS 应用。
- 您必须拥有、管理和维护支持 OAuth 2.0 授权代码流程的 OAuth 2.0 服务器。
基于 OAuth 的 App Flip 流程
以下序列图详细说明了用户、Google 应用、您的应用和您的授权服务器之间针对 App Flip 的交互。
角色和职责
下表定义了 App Flip 流程中执行者的角色和职责。
| 执行者 / 组件 | GAL 角色 | 职责 |
|---|---|---|
| Google 应用 / 服务器 | OAuth 客户端 | 发起账户关联过程,触发到您的移动应用深层链接,将授权代码交换为令牌,并安全地存储这些令牌以访问您服务的 API。 |
| 您的应用 | 授权代理 | 对用户进行身份验证(通常使用现有应用凭据), 获取意见征求,并从您的服务器检索授权代码。 |
| 您的授权服务器 | 授权服务器 | 验证授权代码和刷新令牌,并向 Google 服务器颁发访问 令牌。 |
OAuth リンクの認証コードフローの詳細については、OAuth サーバーを実装するをご覧ください。
设计准则
本部分介绍了应用翻转账号关联同意屏幕的设计要求和建议。在 Google 调用您的应用后,您的应用会向用户显示同意屏幕。
要求
- 您必须告知用户,其账号将与 Google 关联,而非与 Google Home 或 Google 助理等特定 Google 产品关联。
建议
建议您执行以下操作:
显示 Google 的隐私权政策。在意见征求屏幕上添加指向 Google 隐私权政策的链接。
要分享的数据。使用简洁明了的语言告知用户 Google 需要哪些用户数据以及原因。
明确的号召性用语。在同意屏幕上提供清晰的号召性用语,例如“同意并关联”。这是因为用户需要了解他们必须与 Google 分享哪些数据才能关联其账号。
能够拒绝或取消。如果用户选择不关联,请提供一种供用户返回、拒绝或取消的方式。
能够解除关联。提供一种可供用户取消关联的机制,例如指向您平台上的账号设置的网址。或者,您也可以添加指向 Google 账号的链接,以便用户管理其关联的账号。
能够更改用户账号。建议用户切换账号的方法。如果用户倾向于使用多个账号,此功能尤其有用。
- 如果用户必须关闭同意屏幕才能切换账号,请向 Google 发送可恢复的错误,以便用户可以通过 OAuth 关联和隐式流程登录所需账号。
添加您的徽标。在权限请求页面上显示公司徽标。 根据样式指南放置徽标。如果您还想显示 Google 的徽标,请参阅徽标和商标。
OAuth ベースのアプリ切り替えを設定する
以下のセクションでは、OAuth ベースのアプリ切り替えの前提条件と、アプリ切り替えプロジェクトを Actions Console で設定する方法について説明します。
アクションを作成して OAuth 2.0 サーバーを設定する
アプリ切り替えを設定する前に、以下を行う必要があります。
- アクションを作成する。アクションを作成する手順については、プロジェクトを作成するをご覧ください。
- OAuth 2.0 サーバーを設定する。OAuth サーバーの設定について詳しくは、OAuth によるアカウント リンクを実装するをご覧ください。
Actions Console でアプリ切り替えを設定する
次のセクションでは、Actions Console でアプリ切り替えを構成する方法を説明します。
- 上部のナビゲーションにある [Develop](開発)をクリックし、左側のナビゲーションで [Account linking](アカウントのリンク)をクリックします。
- [アカウントのリンク] の横にあるスイッチをオンにします。
- [Account creation](アカウントの作成)で、[No, I only want to allow account creation on my website](いいえ、自分のウェブサイトでのアカウントの作成のみを許可します)を選択します。
- [次へ] をクリックします。
- [Linking type](リンクタイプ)で、[OAuth] と [Authorization code](認証コード)を選択します。
- [次へ] をクリックします。
- [OAuth Client information] のすべてのフィールドを入力します。(アプリ切り替えがサポートされていない場合は、通常の OAuth がフォールバックとして使用されます)。
- [次へ] をクリックします。
- [Use your app for account linking (optional)] で、[Enable for iOS](iOS で有効にする)をオンにします。
- [Universal Link](ユニバーサル リンク)フィールドに入力します。ユニバーサル リンクについて詳しくは、コンテンツへのアプリとウェブサイトのリンクを許可する をご覧ください。
- クライアントを設定したい場合は、スコープを追加し、[Configure your client (optional)](クライアントを構成する(省略可))で [Add scope](スコープを追加)をクリックします。構成しない場合は、[次へ] をクリックします。
- [Testing instructions](テスト手順)で、プレースホルダとして「
test」(または任意の文字列)を入力します。(テスト アカウントでこのフィールドを入力する必要があるのは、実際にアクションを提出して公開する場合のみです)。 - [保存] をクリックします。
次のセクションでは、iOS アプリまたは Android アプリにアプリ切り替えを実装します。
ネイティブ アプリにアプリ切り替えを実装する
アプリ切り替えを実装するには、Google からのディープリンクを許可するようにアプリのユーザー認可コードを変更する必要があります。
デバイスでアプリ切り替えをテストする
アクションを作成し、コンソールとアプリでアプリ切り替えを設定したら、モバイル デバイスでアプリ切り替えをテストできます。Google アシスタント アプリを使ってアプリ切り替えをテストすることもできます。
アシスタント アプリからアプリ切り替えをテストする手順は次のとおりです。
- Actions Console に移動して、プロジェクトを選択します。
- 上部のナビゲーションで [Test](テスト)をクリックします。
- アシスタント アプリからアカウントのリンクフローをトリガーします。
- Google アシスタント アプリを起動します。
- [設定] をクリックします。
- [アシスタント] タブで、[スマートホーム] をクリックします。
- [追加(+)] をクリックします。
- プロバイダのリストからアクションを選択します。リストの先頭に「[test]」が付きます。リストから [test] アクションを選択する場合、アプリを開く必要があります。
- アプリが起動したことを確認し、承認フローのテストを開始します。