如何验证用户当前密码?

Tha*_*ude 9 firebase firebase-authentication firebase-admin

所以,也许我在文档的某个地方错过了这个,但我找不到任何类似的东西.

我的用户不必输入他们当前的密码才能创建一个新密码.根据我的理解,如果用户通过身份验证,他可以在不提供当前密码的情况下更新密码.

即使这可能有点安全,我宁愿让他输入旧的,以防止人们从家庭成员那里继续进行已经过身份验证的会话并改变pw.

有没有办法做到这一点?

(我使用Admin SDK没有问题,因为我已经为这些事情设置了服务器)

boj*_*eil 13

您可以使用reauthenticate API来执行此操作.我假设您要在允许用户更新之前验证当前用户的密码.因此,在网络中,您可以执行以下操作:

var user = firebaseApp.auth().currentUser;
var credential = firebase.auth.EmailAuthProvider.credential(
  firebase.auth().currentUser.email,
  providedPassword
);

// Prompt the user to re-provide their sign-in credentials

user.reauthenticateAndRetrieveDataWithCredential(credential).then(function() {
  // User re-authenticated.
}).catch(function(error) {
  // An error happened.
});
Run Code Online (Sandbox Code Playgroud)

如果成功,那么你可以打电话

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