web-dev-qa-db-ja.com

ユーザーの現在のパスワードを確認する方法は?

だから、多分私はドキュメントのどこかでこれを見逃しましたが、私はそのようなものを見つけることができませんでした。

新しいパスワードを作成するために、ユーザーが現在のパスワードを入力する必要はありません。ユーザーが認証されているかどうかを私が理解していることから、彼は現在のパスワードを提供せずにパスワードを更新することができます。

これがいくらか安全かもしれないとしても、私はむしろ彼に彼の古いものをタイプしてもらい、人々がすでに認証されたセッションに家族などから行ってpwを変更するのを防ぎたいと思います。

これを行う方法はありますか?

(私はすでにこの種のサーバーをセットアップしているので、Admin SDKを使用しても問題ありません)

11
ThatBrianDude

更新:(使用-reauthenticateAndRetrieveDataWithCredential)

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.
});

前のバージョン

再認証APIを使用してこれを行うことができます。ユーザーがパスワードを更新できるようにする前に、現在のユーザーのパスワードを確認する必要があると想定しています。したがって、Webでは、次のようなことを行います。

reauthenticateWithCredential-非推奨

firebase.auth().currentUser.reauthenticateWithCredential(
  firebase.auth.EmailAuthProvider.credential(
    firebase.auth().currentUser.email, 
    providedPassword
  )
);

これが成功した場合、あなたは呼び出すことができます

firebase.auth().currentUser.updatePassword(newPassword);
14
bojeil