我不知道这是否会成功,或者这是正确的做法。
我创建了一个angularjs应用程序,并使用firebase为我的应用程序提供了一个"后端",或者包含我的应用程序所需的任何数据。
此外,我不想在处理身份验证时打扰自己,而FirebaseSimpleLogin只是这项工作的绝佳工具。
我能做到:
resolve : {
'isAuthenticated': isLoggedIn
}
在我的路线中,所以我可以阻止它们移动到安全路线。所以没有问题,我已经有一个经过身份验证的用户。
问题是,我只使用firebase来保存用户数据和auth,没有别的。
现在我想在我的服务器中执行一些服务器任务,但我只希望经过身份验证的用户执行此操作。
如何确定用户在firebase中进行了身份验证?
这是firebase token generator for。
或者我应该只使用nodejs创建一个身份验证系统?
答案 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协议,没有快速服务器,没有头痛。