Google 登录概念指南

适用于 Google 助理的 Google 登录 (GSI) 可提供最顺畅的关联 并且是最容易开发者实现的流程。 借助 GSI,您的 Action 可以在以下期间请求访问用户的 Google 个人资料: 对话,并在用户同意的情况下接收用户的姓名、电子邮件地址 和个人资料照片。然后,您的 Action 可以使用这些信息来检查 用户在您的系统中拥有 Google 账号。否则,您的 Action 会询问用户是否 他们希望根据他们的 Google 商家信息,在您的系统中创建一个新账号。 个人资料信息。

如果满足以下任一条件,则建议使用 GSI 账号关联解决方案:

  • 您还没有现成的身份验证系统,并且/或者您希望自己的所有 用户拥有 Google 账号。例如,如果您的 Action 是专门为 那么所有用户都能使用 Google 账号。
  • 您有一个现成的身份验证系统,并且只想将 使用您的 Google 账号登录您的系统。

如需验证 GSI 是否适合您,请参阅 选择账号关联类型页面。

关键词

在了解 GSI 的工作原理之前,请先熟悉以下术语:

  • Google ID 令牌:经过签名的用户身份断言,其中包含 用户的 Google 个人资料基本信息(用户的姓名、电子邮件地址和 个人资料照片)。Google ID 令牌是 JSON 网络令牌 (JWT)。

    以下是已解码令牌的示例:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • user.verificationStatus:由系统设置的属性,用于指示 当前会话包含经过验证的用户。

  • user.accountLinkingStatus:由系统设置的属性,用于指示 当前会话中的用户拥有关联的身份。

  • 账号关联系统场景:实现确认的预定义场景 账号关联流程,并且可以根据具体应用场景进行自定义。

工作原理

GSI 的基本流程如下:

  1. 您的 Action 会请求用户同意访问其 Google 个人资料。
  2. 用户表示同意后,您的 Action 会收到一个 Google ID 令牌, 包含用户的 Google 个人资料信息。
  3. 验证并解码令牌以读取个人资料内容。如果您使用 适用于 Node.js 的 Actions on Google 执行库。 它会为您验证和解码令牌。
  4. 您的 Action 会使用此令牌来检查用户的 Google 个人资料 信息。

    1. 如果包含,则表示该用户已使用其 Google 账号。用户可以继续对话 使用与 Google 账号关联的身份的 Google 助理。
    2. 如果没有,用户可通过以下方式在您的系统中创建一个新账号: Google ID 令牌中包含的信息。然后,用户可以 关联新账号,然后继续与 Google 助理对话。

Google 登录流程

本部分介绍了使用 Google 登录可执行的各种流程。

流程 1:用户信息存在于您的系统中

下图显示了使用 GSI 时, 您的系统中已经存在用户的信息:

在这种情况下,您需要过渡到账号关联系统场景,并提供 自定义的理由。此场景请求用户授予权限 访问其 Google 个人资料信息。

用户同意后,Google 助理会发送一个包含 user@gmail.com的个人资料信息。在此例中, user@gmail.com 的 Google ID 令牌中包含的一个 因此您的 Action 中用户的身份也会自动 与该账号相关联。然后,webhook 就可以从 并相应地做出响应

流程 2:您的系统中不存在用户信息

下图显示了使用 GSI 时, 您的用户信息在您的系统中不存在:

在这种情况下, user@gmail.com 与您系统中的任何账号都不匹配,因此 Google 助理 询问用户是否愿意创建新账号。用户可以完成 通过语音完成账号创建流程,而不是转移到 。

当用户同意创建账号时,您的服务会使用该信息 ID 令牌(用户的姓名和电子邮件地址)中,以便为 用户。账号创建完成后,您的 Action 中用户的身份 已关联到新的 Google 账号。

在这种情况下,用户没有正常订单,因为他们刚接触 因此您的 Action 会询问他们想要点什么。您 您还可以询问用户是否希望设置 和平时一样