だから、多分私はドキュメントのどこかでこれを見逃しましたが、私はそのようなものを見つけることができませんでした。
新しいパスワードを作成するために、ユーザーが現在のパスワードを入力する必要はありません。ユーザーが認証されているかどうかを私が理解していることから、彼は現在のパスワードを提供せずにパスワードを更新することができます。
これがいくらか安全かもしれないとしても、私はむしろ彼に彼の古いものをタイプしてもらい、人々がすでに認証されたセッションに家族などから行ってpwを変更するのを防ぎたいと思います。
これを行う方法はありますか?
(私はすでにこの種のサーバーをセットアップしているので、Admin SDKを使用しても問題ありません)
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);