我不知道这是否行得通,还是正确的做法。

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

另外,我也不想在进行身份验证时打扰自己,FirebaseSimpleLogin只是完成这项工作的好工具。

我可以做:

resolve : {
   'isAuthenticated': isLoggedIn
}

在我的路线上,这样我就可以防止他们转向安全路线。因此没有问题,我已经有一个经过身份验证的用户。

问题是,我只使用firebase来保存用户数据和进行身份验证,仅此而已。

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

如何确定用户在Firebase中已通过身份验证?

这是firebase token generator的目的。

还是我应该使用nodejs创建一个身份验证系统?

最佳答案

checkout 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/,然后监听out/,直到服务器回复。

服务器从in/队列中读取记录,对其进行处理,然后将其写回到out/user_id路径。

没有RESTful协议(protocol),没有快速服务器,没有麻烦。

关于node.js - 对Node.js应用程序使用Firebase身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25303809/

10-10 02:45