适用于 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" }
- 账号登录帮助程序 intent:您调用的辅助 intent
通过 Google 助理请求账号关联流程。如需更多信息
请参阅账号登录。
- 上下文字符串:您添加到账号中的自定义字符串 登录帮助程序 intent,告知用户您为何需要关联 其账号。
工作原理
GSI 的基本流程如下:
- 您的 Action 会请求用户同意访问其 Google 个人资料。
- 用户表示同意后,您的 Action 会收到一个 Google ID 令牌, 包含用户的 Google 个人资料信息。
- 验证并解码令牌以读取个人资料内容。如果您使用 适用于 Node.js 或 Java 客户端库的 Actions on Google 客户端库; 它会为您验证和解码令牌。
您的 Action 会使用此令牌来检查用户的 Google 个人资料 信息。
- 如果包含,则表示该用户已使用其 Google 账号。用户可以继续与 使用与 Google 账号关联的身份的 Google 助理。
如果没有,用户可通过以下方式在您的系统中创建一个新账号: Google ID 令牌中包含的信息。然后,用户可以 关联新账号,然后继续与 Google 助理对话。
Google 登录流程
本部分介绍了使用 Google 登录可执行的各种流程。
流程 1:用户信息存在于您的系统中
下图显示了使用 GSI 时, 您的系统中已经存在用户的信息:
在这种情况下,您可以使用如下设置调用 actions.intent.SIGN_IN
帮助程序 intent:
上下文字符串。此 intent 会要求用户提供以下权限:
访问其 Google 个人资料信息。
用户同意后,Google 助理会发送一个包含
user@gmail.com
的个人资料信息。在此例中,
user@gmail.com
的 Google ID 令牌中包含的一个
因此您的 Action 中用户的身份也会自动
与该账号相关联。然后,webhook 就可以从
并相应地做出响应
流程 2:您的系统中不存在用户信息
下图显示了使用 GSI 时, 您的用户信息在您的系统中不存在:
在这种情况下,
user@gmail.com
与您系统中的某个账号不匹配,因此 Google 助理
询问用户是否愿意创建新账号。用户可以完成
通过语音完成账号创建流程,而不是转移到
。
当用户同意创建账号时,您的服务会使用该信息 ID 令牌(用户的姓名和电子邮件地址)中,以便为 用户。账号创建完成后,您的 Action 中用户的身份 已关联到新的 Google 账号。
在这种情况下,用户没有正常订单,因为他们刚接触 因此您的 Action 会询问他们想要点什么。您 您还可以询问用户是否希望设置 和平时一样