我不知道这是否行得通,还是正确的做法。
我创建了一个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/