我正在尝试以编程方式从我的 firebase 中删除用户。 removeuser 方法有两个参数,电子邮件和密码。现在不难找到电子邮件,因为它存储在 auth 变量中 + 我在创建用户时将其添加到我的数据库中。但是,我应该如何从用户那里找出密码呢?
当我创建一个用户时,我会将生成的 md5_hash 信息添加到我的数据库中。但是,我无法将此值转换回真实密码。
我显然也不想将真实密码存储在数据库中,因为这只是自找麻烦。
所以我想知道,在如何以编程方式从数据库中删除用户及其密码方面,我是否遗漏了什么过于明显的信息? (为什么我什至需要他的密码才能删除他?)
编辑:澄清一下,我只允许管理员删除用户,所以他有一个在我的 firebase 中创建的每个用户的列表。让用户删除自己的用户帐户仍然不是那么容易,因为(我推测)firebase 哈希算法不是公开的,所以我无法检查他是否输入了正确的密码。
最佳答案
Firebase 简单登录是一项构建在 Firebase Custom Login 之上的服务,并提供有用的原语以通过常用方式对用户进行身份验证。
按照设计,Firebase 简单登录不会让您以编程方式访问用户密码,因为它只会增加未安全处理或存储密码的风险。今天,仅有两种可用于删除电子邮件/密码 HashMap 的方法是通过使用电子邮件和密码的客户端 API,或通过位于 https://<YOUR-FIREBASE>.firebaseio.com
的管理面板。 .
请记住,当使用电子邮件/密码登录时,Firebase 简单登录只是在电子邮件地址和密码哈希之间创建一个新映射,但不会在您的 Firebase 中存储任何信息。另请注意,无法将用户 ID 列入“黑名单”,因此如果删除映射,用户可以重新创建它。
如果您想禁止/阻止用户,更好的方法是在 Firebase 中为您的“黑名单”用户创建一个新列表,然后使用安全规则确保该用户在列表中(即用户被阻止如果 root.child('blocked-users').hasChild(auth.uid)
)。
关于javascript - 从 firebase 中删除用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23383826/