【发布时间】:2015-11-24 08:21:07
【问题描述】:
当客户在其他设备上签名时,我试图使他们的身份验证令牌无效/撤销。初始 auth-token 是通过我们的服务器而不是 firebase 提供的(但使用相同的密钥,因此也适用于 firebase)。
对于每个用户,我们保存一个关联密码,该密码作为 auth-token 的一部分传递,当用户切换设备时 - 我们从服务器发出新密码并比较密码以使服务器上的令牌无效。但 Firebase 连接仍然存在。
我正在尝试在 firebase 上为每个用户存储密码。然后,每次我们在后端更改密码并使用它来使 firebase 令牌无效时,都可以更新它。但是,我无法从 auth 对象中提取密码。有什么想法吗?
这是我的 Firebase 安全规则。
{
"rules": {
".read": root.child('passwords').child(auth.uid).val() == auth.password,
".write": root.child('passwords').child(auth.uid).val() == auth.password
}
}
令人惊讶的是,auth 对象中的自定义字段都不存在。
【问题讨论】:
-
我已成功使用此方法。您很可能没有正确创建 JWT。请发布您用来创建它的代码。您使用的是 FirebaseTokenGenerator 库还是其他东西? Docs
-
感谢 Anid 的回复。不,不使用 FirebaseTokenGenerator,而是使用自定义 JWT 库。在 ref.authWithCustomToken 中传回的 auth 对象是否应该反映 firebase 正在解析的内容?如果仍然遇到问题,我会再次检查并发布代码。谢谢!
标签: firebase firebase-security