【问题标题】:How to tie an account from a backend server to a google assistant user如何将后端服务器的帐户绑定到谷歌助理用户
【发布时间】:2018-02-23 15:35:09
【问题描述】:

我有一个 Web 应用程序设置来使用 Google 助理处理来自 Actions-on-Google/Dialogflow 应用程序的 Webhook 请求。用户无需登录谷歌帐户即可使用我的网络应用程序,我更愿意保持这种状态,以便用户可以使用任何电子邮件地址登录。

我还希望我的用户能够使用 Google 助理与我的应用程序交互,并能够通过助理访问个人/上下文数据(即当演讲者说“我的购物清单上有什么”时,网络应用程序需要能够知道 my 的含义)。

目前,我通过使用我的网络应用程序向我的用户(在网络应用程序 UI 中)发出一个唯一的短代码,然后在说话者说“我的代码是 1-2- 3-4" 然后我的 Web 应用程序可以从那时起识别用户(通过将 webhook 请求中的 userId 保存到获得短代码 1234 的任何用户,然后使用该 userId 在每个后续请求中查找用户。)

我的问题是,有没有更好的方法来做到这一点?理想情况下,在我的网络应用程序中,我希望有一个类似“授权 Google 助理”按钮,然后将用户的谷歌帐户链接到他们的网络应用程序帐户,以便助理上的对话是无缝的。

以前有人做过吗? 谢谢

【问题讨论】:

    标签: authorization webhooks actions-on-google dialogflow-es


    【解决方案1】:

    这是Account Linking 与 Google 助理的完美用例。

    从您的用户的角度来看,他们将开始使用您的操作。如果他们通过扬声器执行此操作并且尚未关联帐户,则会将他们定向到移动设备以执行此操作。在移动设备上,他们将被重定向到您网站上的一个页面,他们将在该页面上进行身份验证并授权您的服务器通过 Google 助理让他们进入。完成此操作后,他们无需再次登录,帐户将被关联,并且他们将能够使用语音操作而不会受到进一步的阻碍。

    从您作为开发人员的角度来看,您需要设置一个 OAuth2 服务器(我建议使用代码流)。我提到的登录过程是 OAuth 之舞的第一步,最终您会向 Google 发出代码。然后,他们将用此代码交换身份验证令牌(具有有限的生命周期)和刷新令牌(不会过期)。他们将定期使用刷新令牌为该用户获取新的、有效的身份验证令牌。当用户发出语音命令时,Auth Token 将作为 JSON 中的一个字段传递到您的履行服务器,您可以使用它来验证用户是谁以及他们是否有权使用您的服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-24
      • 2021-05-02
      • 1970-01-01
      • 2014-09-22
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多