【问题标题】:How to use firebase authentication in an other firebase project如何在其他 firebase 项目中使用 firebase 身份验证
【发布时间】:2017-05-24 17:53:47
【问题描述】:

我有两个 Firebase 项目 F1 和 F2。我正在使用基于密码的身份验证来识别 F1 上的用户。我希望在 F2 中识别相同的用户。所以我正在考虑基于this question的以下场景:

Client --------- authenticates with email password --------->> Firebase F1
Client <<----------------- get auth token -------------------- Firebase F1
Client ------ custom authenticates with returned token ----->> Firebase F2
  * Firebase F2    <<----------  check auth token    ------------- App Server (NodeJs)    
         App Server  <<---------- validates auth token ------------ Firebase F1

是否可以配置一个服务器挂钩(在本例中为应用服务器),其中 firebase (F2) 检查自定义令牌是否有效(* 行)?

如果有可能,如何做到这一点? 如果这不可能,请问有什么方法可以在不同的 Firebase 项目中对同一用户(相同的 uid)进行身份验证?

【问题讨论】:

  • 您可以在数据库中指定规则,以便 F1 中的用户可以在 F2 中写入、读取或验证。如果这有帮助,我可以告诉你如何完成它。
  • 这正是我想要的。我的问题是在 F1 和 F2 或任何替代方案上为同一用户使用相同的 uid。
  • 你解决了吗?

标签: firebase firebase-authentication


【解决方案1】:

我在这里firebase rules: how to restrict access based on user role找到了答案。

您可以设置如下规则:

"Node": {
    "$field": {
        ".read": root.child('Projects/' + data.child('project').val() + '/Members/' + auth.uid).exists()",
        ".write": //same here
    }
}

基本上它会检查您在数据库中是否有该用户的信息。希望这会有所帮助。

【讨论】:

  • 我所说的项目是指全局 firebase/google 项目(一个完全不同的 firebase 实例),而不仅仅是同一个 firebase 数据库中的路径。所以我正在寻找的是在两个数据库中使用“auth.uid == data.val()”规则,并且用户应该有相同的 uid。
猜你喜欢
  • 1970-01-01
  • 2018-10-31
  • 2016-10-03
  • 1970-01-01
  • 2017-10-15
  • 2020-07-17
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
相关资源
最近更新 更多