31

したがって、ドキュメントのどこかでこれを見逃したのかもしれませんが、そのようなものは見つかりませんでした。

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

これがある程度安全かもしれないとしても、家族などからすでに認証されたセッションに参加してpwを変更するのを防ぐために、彼に古いものを入力してもらいたいと思います。

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

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

4

1 に答える 1

43

更新: (使用 - reauthenticateWithCredential)

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.reauthenticateWithCredential(credential).then(function() {
  // User re-authenticated.
}).catch(function(error) {
  // An error happened.
});

前のバージョン

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

reauthenticateAndRetrieveDataWithCredential- 非推奨

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

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

firebase.auth().currentUser.updatePassword(newPassword);
于 2016-12-12T23:15:44.970 に答える