我可以使用FirebaseSimpleLogin作为另一个用户进行身份验证吗?

时间:2014-01-23 00:23:30

标签: firebase firebase-security

大多数应用都有“代表客户X行事”按钮。这可以使用Firebase实现吗?

我注意到我可以create an admin token使用自定义登录,但由于数据不可避免地被用户的ID编入索引,因此如果我仍然以自己身份验证,则难以获取用户的数据。

1 个答案:

答案 0 :(得分:3)

您可以通过custom login创建令牌来模拟以用户身份登录。

例如,如果您的安全规则正在使用auth.uid,如下所示:

".write": "auth.uid == $user_id"

然后,您可以使用相应的uid生成令牌(以及您正在使用的简单登录中的任何其他详细信息):

function superUserToken(USER_ID) {
   var FirebaseTokenGenerator = require("firebase-token-generator");
   var tokenGenerator = new FirebaseTokenGenerator(YOUR_FIREBASE_SECRET);
   return tokenGenerator.createToken({uid: USER_ID});
}

然后当你想su给另一个用户时,只需用新令牌直接调用auth():

var fbRef = new Firebase(URL);
fbRef.auth( superUserToken('Kato!'), function(error, user) { /* ... */ });

此技术对于测试安全规则也很有用,无需在开发环境中创建多个帐户。