【问题标题】:Firebase Auth across multiple projects with different ProvidersFirebase Auth 跨多个项目使用不同的提供者
【发布时间】:2018-02-12 02:49:46
【问题描述】:

我正在寻找通过不同身份验证提供程序在多个项目中无缝地对 Firebase 进行身份验证。

示例

假设我有一个有 10 个页面的网站,不同的数据来自 2 个 firebase 项目(project-1project-2

project-1 包含所有用户帐户

当我注册/登录到 firebase 项目 (project-1) 时。我正在使用谷歌/电话/密码/Facebook。如果不存在,这将创建用户帐户。

现在我可以看到来自 firebase (project-1) 的数据。

现在我的网页中很少有网站想要访问 project-2 中的数据。

如何维护 2 个项目的身份验证状态,以便 project-2 无缝地进行身份验证,而无需再次提示注册。可能使用已为 project-1

创建的相同身份验证令牌

我阅读了这个由 Ian Barber Working with multiple Firebase projects in an Android app 创建的博客。仅讨论 google 和 android 案例。

谢谢。

【问题讨论】:

  • 该博客几乎是讨论多个项目使用的唯一参考。对于使用任何 API 对 Firebase 客户端 SDK 进行自定义初始化的其他平台,它应该是相同的。
  • 您能找到解决方案吗?我有完全相同的问题要处理
  • 有人找到解决方案了吗?我也陷入了类似的境地。
  • 解决方案是创建一个服务器,当用户登录第一个项目时,使用 2 个实例的 firebase-admin 在其他项目中创建/更新用户数据
  • 您正在寻找 SSO(单点播放)解决方案。您可能可以使用“身份验证服务”设计一些东西,然后在应用程序之间共享令牌。我知道这是 Auth0 的默认选项:auth0.com/docs/sso

标签: firebase firebase-authentication


【解决方案1】:

您可以在服务器上使用firebase-adminhere 所述的自定义firebase 令牌的组合。

基本上,您可以使用this 答案中描述的方法为您的第一个应用获取用户的 JWT 令牌。然后,您可以向您自己的服务器发出请求,该请求将验证您的 JWT 令牌是否来自您的第一个项目,然后可以向您发出第二个 JWT 令牌,您可以使用该令牌对第二个项目进行身份验证。

【讨论】:

  • 你能解释一下后面的部分吗?我尝试使用firebase javascript SDK中的signInWithCustomToken,使用项目一令牌登录项目二,但这根本不起作用(“auth/invalid-custom-token ...自定义令牌格式不正确”) .
  • 请发布一个新问题,提供有关您的具体问题的更多信息。在验证服务器上第一个应用程序的 JWT 令牌之后,我引用了使用 admin SDK 为第二个应用程序生成一个新的 JWT 令牌。请注意,您不能简单地将 JWT 令牌从应用程序转移到应用程序。
猜你喜欢
  • 2018-05-02
  • 2020-11-18
  • 2021-06-09
  • 2023-01-29
  • 2018-02-22
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多