首页 文章

Google帐户与Firebase关联的操作

提问于
浏览
8

我正在使用外部API处理Google家庭应用程序 . 我需要当前用户登录并与外部API(外部API提供的访问/刷新令牌)链接 .

我的方法:

  • 设置firebase应用程序

  • google home应用程序位于functions文件夹中 .

  • 我会设置一个页面,用户首先使用firebase.auth()使用他的Google帐户登录,然后使用外部API帐户(使用外部API Oauth) .

  • 然后,我将在firebase数据库中创建一个条目,为每个用户存储外部API提供的访问/刷新令牌 .

这是我有点困惑和卡住的地方 . 我已设法设置登录页面(Google登录,然后是外部API登录)并将其存储到firebase数据库(/ users / ) .

现在它在数据库中,如何在Google主页应用程序中设置身份验证?

谢谢!

2 回答

  • 3

    首先,您需要在 console.developers.google.com 中拥有一个项目并激活项目中的 Google Actions API . 然后,您应该按照以下步骤操作:

    • 将API中的以下重定向URI列入白名单:https://oauth-redirect.googleusercontent.com/r/

    • 在您的API.AI项目中,转到Integrations并启用Google Card上的操作 .

    • 在Google上的操作设置中,放置项目ID并选择 Sign in required 以获取欢迎意图以及用户需要凭据的任何其他意图 .
      enter image description here

    • 下面,您将找到OAuth2字段,如clientID,客户端密钥,授权URL和令牌URL . 使用您的API的OAuth2信息和 Authorize 应用程序来实现它 .
      enter image description here

    在您授权后,您可以 Preview 该应用程序,它将在您的Google Home设备中提供,当您第一次调用时,它会在您的Google Home应用中提供一张卡片来进行关联 . 如果您没有设备,可以使用Web模拟器测试您的操作 .

    有关更多信息,请访问actions on google文档 .

  • 3

    关于您如何考虑与Google和Google Home上的操作相关联的帐户存在一些问题 . Google Home不允许您直接访问Google帐户 - 相反,它就像网络浏览器一样,帐户关联过程要求您向主页“浏览器”发出OAuth2令牌,以便将来使用 .

    如果您可以控制外部API,并且它会发出OAuth2令牌(听起来像它),您可以完全跳过Firebase部分 . 您只需要使用此外部服务的OAuth2信息配置API.AI - 客户端ID和机密,登录页面的URL以及令牌交换页面等 . 在这种情况下,将提供您的webhooks,提供OAUth2您在调用时应将其传递给外部API的访问令牌 . 详细信息位于Actions for Google文档Account Linking文档中 .

    如果您确实 not 可以控制此API,则可能需要提供OAuth2服务器的基本实现,该服务器可以分发身份验证令牌(您创建的令牌或可用于从外部API获取身份验证令牌的令牌) . 然后,您将使用这些OAuth令牌调用您的webhook,并且您应该使用该令牌来查找用于访问外部API的令牌 . 您可以使用一些选项来实现此功能,这些选项将在Google文档操作的OAuth2 Account Linking Overview中讨论 .

相关问题