1

不知道这是否适合这个问题。这不是必需的100%编码问题,但它也不是编码问题。无论如何,这里是如何链接谷歌行动,移动应用程序,后端服务器和Firebase身份验证用户帐户?

故事:我想创建一个购物系统。用户可以使用该网站或移动应用程序或谷歌助手获取产品信息并从该购物系统进行购买。我面临的问题是如何将这3名客户中的用户关联起来。更具体的谷歌助理/行动。

我所做的事情: 使用firebase auth用于身份验证和登录用户到网站或移动应用程序。用户通过身份验证后,可以使用Firebase访问令牌供网站或移动应用使用。网站或移动应用可以将Firebase访问令牌发送到后端服务器,后端服务器可以通过firebase admin sdk验证此访问令牌。一切都按预期工作,直到我想引入google actions/assistant

对于谷歌助理/操作:我跟着thisthis用于将用户登录到谷歌的行动应用程序。此时,如果用户使用其Google帐户登录Google操作应用程序,我可以获取用户基本的个人资料信息。

的问题:

  1. 后,我得到了用户的个人资料,如用户名,电子邮件等,从谷歌的行动登录,然后我查询在后端服务器上的数据库,如果我找到一个用户使用此ID或电子邮件,那么这是一个有效的和经过身份验证的用户,我将允许用户通过谷歌助手进行购买。 这种方法安全可靠,可以在谷歌行动/助手上识别用户吗?
  2. 假设上述方法安全可靠,如果用户帐户是使用其他电子邮件帐户而不是谷歌帐户创建的,我该怎么办?即,用户最初使用非谷歌电子邮件或其他Oauth2(fb,twitter等)通过firebase身份验证在网站或移动应用程序上注册。在这种情况下,我的后端数据库不会为用户提供Google帐户信息,并且如果用户使用Google帐户登录到我的Google动作应用程序,我将无法在现有用户数据库中识别此用户。
  3. 有没有一种方法来验证/通过火力AUTH登录用户到谷歌的行动应用程序,并获得了谷歌的行动fulfillment后端服务器上的火力点访问令牌?如果有办法做到这一点,我想以前的问题将不存在,因为我将能够使用此firbase令牌来验证用户,无论用户帐户是否使用谷歌帐户或其他电子邮件帐户或其他Oauth2创建供应商。
  4. 如果上述所有失败,是倾销firebase身份验证,并创建我的Oauth 2服务的一个选项,它将成为唯一可用的备份计划?

回答

2

一些问题的答案:

  1. 如果ID或电子邮件的比赛 - 这是否识别用户?

    嗯,是的,没有。

    如果ID匹配,则表示您已验证登录帐户的Google ID与您记录的Google帐户相匹配。大!这是安全的,你可以信任它。

    如果电子邮件地址为匹配...呃...信心程度低得多。虽然谷歌确实选择了入住检查,但这似乎仍然在冒着风险。电子邮件地址随时间变化。

  2. 如果通过其他方式验证,该怎么办?

    我正确地总结了这个问题吗?

    我想我不确定你在其他情况下如何处理这个问题。如果他们使用不同的帐户(而不是电子邮件,帐户)登录到您的智能助理应用程序,那么他们希望两者有所不同?

    他们可以登录您的使用与他们用来设置设备的帐户不同的Google帐户进行操作。有些流程鼓励他们使用同一个流程,但他们不必这样做,如果您没有为他们默认使用的帐户创建帐户,则可以使用其他流程。

  3. 我不能只使用Firebase身份验证?

    那么......不,是的。

    不,不可以告诉助理向您发送Firebase身份验证令牌,而不是您想要接收的令牌。

    但是,您可以使用火力地堡验证,如果你愿意设置自己的OAuth2服务器。上面的StackOverflow问题的链接只是试图解决必须自己设置OAuth2服务器的问题。如果您设置了一个,则可以让他们使用Firebase登录进行登录,生成令牌并将其存储为其Firebase ID,然后将该令牌发送给助理客户端。当您获取该令牌时,您可以轻松将其关联回Firebase ID。

    但是您需要完成这项工作。 Firebase和助手都不会为您做。

    (用于火力地堡和谷歌云,恕我直言,一个错失的机会,但是......)

    您已经看到了如何建立一个最小的OAuth2服务器的页面。

  4. 我应该只转储Firebase身份验证?

    有没有必要。您可以将Firebase身份验证与设置您自己的OAuth2服务器结合使用。它是一个伟大的基地!我个人使用Firebase身份验证和Firebase登录(以及Firebase托管和Firebase功能)作为我的OAuth2实施的基础。

+1

非常感谢!我只是想知道如果这个来自StackOverflow文章的@Prisoner人可以在这里提供一些输入,这将是很好的。同意,如果我可以在没有设置OAuth2服务器的情况下使用Google行动的Firebase身份验证,那将会很好。 –

相关问题