我有一个 Firebase 驱动的应用程序。要求是到更新账号密码输入 currentPassword
和 newPassword
.
在服务器(firebase 云功能 + 管理 sdk)上,我需要检查是否提供了 currentPassword
已验证。
首次创建帐户时, firebase 自动加密密码 ,并且只给我哈希值。
问题是 - 这种加密是自动完成的,在幕后 .
在没有访问加密方法的情况下,我无法获得currentPassword
的哈希值为了将它与真实密码的存储散列进行比较..看看这两个散列是否匹配。
那么我如何检查 currentPassword
已验证?如何访问 firebase-auth 用于加密的相同方法?
到目前为止我找不到任何相关的东西。我在这里使用了错误的方法吗?为什么这么难找?
最佳答案
我不太确定您是否可以使用云功能验证密码,重点是确保黑客即使以某种方式侵入服务器也无法恢复用户的密码,如果您可以通过知道来恢复密码哈希和盐,他们为什么不是黑客?但是,您可以在您的应用程序中执行此操作:
firebase.auth().currentUser.reauthenticateWithCredential(firebase.auth.EmailAuthProvider.credential(firebase.auth().currentUser.email, oldPassword);
另外,只是为想要更改密码的用户提供另一种方式,只需向他们发送重置密码的电子邮件,这样就非常安全,他们不必输入旧密码:
firebase.auth().sendPasswordResetEmail(firebase.auth().currentUser.email)
关于firebase - 如何在firebase admin sdk中检查当前密码是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141549/