繁体   English   中英

Firebase 跨多个项目与不同提供商的身份验证

[英]Firebase Auth across multiple projects with different Providers

我正在寻找 Firebase 以跨具有不同身份验证提供程序的多个项目进行无缝身份验证。

例子

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

project-1包含所有用户帐户

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

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

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

如何在 2 个项目中维护身份验证 state,以便项目 2将无缝地进行身份验证,而不会再次提示注册。 可能使用已经为project-1创建的相同身份验证令牌

我阅读了这个由 Ian Barber 创建的博客,该博客在一个 Android 应用程序中处理多个 Firebase 项目 仅讨论了 google 和 android 案例。

谢谢。

您可以在服务器上结合使用 firebase firebase-admin和自定义 firebase 令牌,如此所述。

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

我认为您可以执行以下操作:

  • project-2上配置一个OIDC provider ,它指向来自project-1的 firebase 身份验证。
    • 发行人应为https://securetoken.google.com/<project-1-id>
    • client idproject-1-id
  • project-1上登录后,您可以使用该应用程序中的signIn ,通过idToken OAuthProvider到第二个应用程序 ( project-2 ):
      const provider = new OAuthProvider('oidc.project-1');
      const credential = provider.credential({
        idToken: 'idTokenFromProject1',
      });

      signInWithCredential(auth, credential)

idTokenFromProject1可以通过project-1应用程序上的getIdToken()方法获取

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM