对nodejs应用程序使用firebase身份验证

时间:2014-08-14 08:45:50

标签: node.js angularjs authentication firebase firebase-security

我不知道这是否会成功,或者这是正确的做法。

我创建了一个angularjs应用程序,并使用firebase为我的应用程序提供了一个"后端",或者包含我的应用程序所需的任何数据。

此外,我不想在处理身份验证时打扰自己,而FirebaseSimpleLogin只是这项工作的绝佳工具。

我能做到:

resolve : {
   'isAuthenticated': isLoggedIn
}

在我的路线中,所以我可以阻止它们移动到安全路线。所以没有问题,我已经有一个经过身份验证的用户。

问题是,我只使用firebase来保存用户数据和auth,没有别的。

现在我想在我的服务器中执行一些服务器任务,但我只希望经过身份验证的用户执行此操作。

如何确定用户在firebase中进行了身份验证?

这是firebase token generator for。

或者我应该只使用nodejs创建一个身份验证系统?

1 个答案:

答案 0 :(得分:6)

查看queue pattern。让用户将项目写入队列,让服务器响应它们。

使用Firebase作为API /中间人的真正重要的一点是,工作人员(即服务器)不需要担心客户端是否已经过身份验证。 Security rules负责照顾这一点。

只需编写一条规则,只允许登录用户写入队列:

{
  "rules": {
     "queue": {
         "in": {
            // I can only write if logged in
            ".write": "auth !== null",
            "user_id": {
               // I can only write to the queue as myself, this tells the server which
               // out/ queue the user will be listening on
               ".validate": "auth.uid === newData.val()"
            }
         }, 
         "out": {
            "$userid": {
               // I can only listen to my out queue
               ".read": "auth.uid === $userid"
            }
         }
     }
  }
}

现在,用户只需将记录写入/使用push(),然后侦听/直到服务器回复。

服务器从in / queue中读取记录,处理它们,并将它们写回out / user_id路径。

没有RESTful协议,没有快速服务器,没有头痛。