如何在Firease Admin SDK中检查当前密码是否有效?

AIo*_*Ion 5 firebase firebase-authentication firebase-admin

我有一个基于Firebase的应用程序。要求是通过输入和来更新帐户密码currentPasswordnewPassword

在服务器上(firebase云功能+ admin sdk),我需要检查提供的内容currentPassword是否有效。

首次创建帐户时,firebase会自动对密码进行加密,并且只给我哈希值。

问题是- 这种加密是在后台自动完成的

在无法访问加密方法的情况下,我无法获取的哈希值currentPassword以将其与实际密码的存储哈希值进行比较。以查看这2个哈希值是否匹配。

那么我怎样才能检查是否currentPassword有效呢?如何访问firebase-auth用于加密的相同方法?

到目前为止,我找不到任何相关内容。我在这里使用错误的方法吗?为什么很难找到它?

K.W*_*.Wu 2

我不太确定你可以使用云功能验证密码,重点是确保黑客即使以某种方式侵入服务器也无法恢复用户的密码,如果你知道可以恢复密码哈希和盐,黑客为什么不呢?但是,您可以在您的应用程序中执行此操作:

firebase.auth().currentUser.reauthenticateWithCredential(firebase.auth.EmailAuthProvider.credential(firebase.auth().currentUser.email, oldPassword);
Run Code Online (Sandbox Code Playgroud)

另外,只是为了为想要更改密码的用户提供另一种方法,只需向他们发送重置密码电子邮件,这样就非常安全,他们不必输入旧密码:

firebase.auth().sendPasswordResetEmail(firebase.auth().currentUser.email)
Run Code Online (Sandbox Code Playgroud)