不确定这是否适合此问题。这不是100%编码问题,但也不是编码问题。无论如何,这是
故事:我想创建一个购物系统。用户可以使用网站或移动应用程序或谷歌助手获取产品信息并从该购物系统购物。我面临的问题是如何将这三个客户端中的用户关联起来。更具体地说是谷歌助手/行动。
我做过的事情: 使用firebase auth进行身份验证并将用户登录到网站或移动应用程序。用户通过身份验证后,可以使用firebase访问令牌供网站或移动应用使用。网站或移动应用程序可以将firebase访问令牌发送到后端服务器,后端服务器可以通过firebase admin sdk验证此accessToken。一切都按预期工作,直到我想介绍google actions/assistant为止。
对于Google助理/操作:我按了this和this将用户登录到Google操作应用。此时,如果用户使用他们的Google帐户登录Google操作应用,我可以获取用户基本个人资料信息。
问题:
答案 0 :(得分:2)
您的问题的一些答案:
如果ID或电子邮件匹配 - 这是否会识别用户?
嗯,是的,没有。
如果ID与之匹配,则表示您已确认所登录帐户的Google ID与您记录的Google帐户相匹配。大!这是安全的,你可以相信它。
如果电子邮件匹配......那么......信心度要低得多。虽然Google确实会选择加入,但这似乎仍然存在风险。电子邮件地址执行随时间而变化。
如果通过其他方式进行身份验证会怎样?
我是否正确地总结了这个问题?
我想我不确定在任何其他情况下你会如何处理这个问题。如果他们使用不同的帐户(不是电子邮件,帐户)登录您的智能助理应用程序,而不是用于网络...他们希望两者不同?
他们可以使用与他们用于设置设备的帐户不同的Google帐户登录您的操作。有些流程鼓励他们使用相同的流程,但他们不必这样做,如果您没有默认使用的帐户,则可以回退到其他流程。
我不能只使用Firebase Auth吗?
嗯......不,是的。
不,无法告诉智能助理为您提供Firebase身份验证令牌,而不是您想要提供的令牌。
但是,如果您愿意设置自己的OAuth2服务器, 可以使用Firebase Auth。上面的StackOverflow问题的链接只是试图自己设置OAuth2服务器。如果您设置了一个,则可以使用Firebase登录进行登录,生成令牌并将其存储在Firebase ID中,然后将该令牌发送给Assistant客户端。当您获得该令牌后,您可以轻松地将其与Firebase ID相关联。
但是你需要做那项工作。 Firebase和智能助理都不会为你做这件事。
(错过了Firebase和Google Cloud的机会,imho。但是......)
您已经看过如何构建最小OAuth2服务器的页面。
我应该只是转储Firebase Auth吗?
没有必要。您可以将Firebase Auth与设置自己的OAuth2服务器结合使用。它是一个很好的基地!我个人使用Firebase Auth和Firebase登录(以及Firebase托管和Firebase功能)作为我的OAuth2实施的基础。