我的 Angular 应用程序有一个用户处理页面,超级用户(管理员)应该能够编辑用户数据。不允许他添加新用户(他们有一个注册页面,他们可以在其中选择自己的秘密密码),但他应该能够(根据我的逻辑)删除用户......
这是removeUser() firebase-simple-login API 文档页面,这是同一页面中的使用示例:
auth.removeUser(email, password, function(error) {
if (error === null) {
console.log("User removed successfully");
} else {
console.log("Error removing user:", error);
}
});
所以,应用程序应该知道密码......我应该在她注册时将用户密码保存在我的用户数据中吗?
但是这样我会失去 firebase-simple-login 的主要优势(避免在本地存储私有/敏感数据)......
请解释我的错误,在任何...
更新:感谢 Rob DiMarco 的评论,我现在明白了这个问题的基本原理: removeUser() 旨在供用户自己使用,在再次提供密码后......如果管理员需要删除帐户,他/她应该在本地用户的元数据上设置一些“已删除”标志,并在 firebase 上保持该帐户不变。如果用户决定重新激活同一个帐户,软件应该简单地删除“已删除”标志,并auth.login()
使用新用户提供的用户名/密码执行标准...
更新 2:这种方法的唯一小问题(如果有问题)是想要恢复“已删除”帐户的用户必须记住旧密码,因为我们没有删除 firebase-simple-login 帐户......但是,她总是可以在“登录”表单中重置她的密码(如果她是电子邮件帐户的真正所有者......)。
@Rob DiMarco:如果您想发表评论作为答案,我很乐意接受...