javascript - 从 firebase 中删除用户

标签 javascript database firebase firebase-security

我正在尝试以编程方式从我的 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/

相关文章:

javascript - 即使具有相同的数据类型,也无法使用数据属性扩展 Typescript 中的接口(interface)

php - 如果用户已经提交页面,则显示错误消息,然后重定向到引用页面

swift - Swift 上的 Firebase,如果查询为空,如何得到通知?

javascript - 如何重复相同的值直到最后一个文本框?

javascript - 使用 three.js 在场景中只显示一个粒子

javascript - 在 Javascript 中将函数包装在 Try-Catch block 中

c# - 使用 C# 通过单击按钮从 MS Access 数据库中删除数据

database - 无法重置 orient-db 密码

firebase - 如何将数据从 Firebase 转换为完全类型化的 Map?

firebase - 无法在新的 android studio 更新中找到签名报告