我正在实现一个 node.js 服务器,使用 express.js 进行 REST 和 Firebase 进行数据存储。
我已经阅读了 Using NodeJs with Firebase - Security,它可以以这种方式实现,但在我的情况下,我需要将数据发送到服务器并且服务器必须返回一个重定向地址,所以使用 firebase 作为通信通道有点复杂。
我目前正在通过发送 Firebase 身份验证令牌作为查询参数并使用 firebase auth() 方法检查授权来验证服务器上的客户端身份。
dataRef.auth(CLIENT_TOKEN, function(error) {
if(error) {
console.log("Login Failed!", error);
} else {
console.log("Login Succeeded!");
}
});
问题是,在服务器中我还需要firebase“管理员”权限。为此,我需要使用管理员令牌使用 firebase auth() 再次进行身份验证。(由 firebase-token-generator 生成)
var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator(YOUR_FIREBASE_SECRET);
var token = tokenGenerator.createToken({some: "arbitrary", data: "here"});
我注意到 auth() 方法有一个限制:
请注意,对 Firebase 的所有引用共享相同的身份验证状态。因此,如果您调用 new Firebase() 两次并在其中一个上调用 auth(),它们都将通过身份验证。
有没有办法在不调用 auth() 两次的情况下实现这一点?
还是有更好的解决方案来做到这一点?