在Ionic中更改Firebase密码而不进行身份验证

时间:2018-12-26 02:34:19

标签: firebase ionic-framework firebase-authentication

我想在不验证用户身份的情况下更改用户密码,而我想通过Ionic进行操作。

当前,这就是我所拥有的:

const user = firebase.auth().currentUser;
const credentials = firebase.auth.EmailAuthProvider.credential(user.email, 
    this._password);
user.reauthenticateWithCredential(credentials)

问题是我想在不验证用户身份的情况下更改用户密码,而那正是firebase.auth()。currentUser无法做到的。如果我们要与多个用户打交道,则后者将无法工作。

2 个答案:

答案 0 :(得分:0)

Firebase仅提供一种未经授权即reset password by email重置密码的方法。

  

您可以使用以下方式向用户发送密码重置电子邮件:   sendPasswordResetEmail方法。例如:

var auth = firebase.auth();
var emailAddress = "user@example.com";

auth.sendPasswordResetEmail(emailAddress).then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

您还可以自定义email template format。希望这会有所帮助。

答案 1 :(得分:0)

在客户端JavaScript SDK中,如果不验证用户密码就无法更改该用户的密码。如果存在,则可能由您的应用程序的任何恶意用户调用,这将带来巨大的安全风险。

在不知道/未指定其当前凭据的情况下更改用户密码的唯一方法是通过Firebase Admin SDK。该Admin SDK旨在在受信任的环境(例如您的开发机,您控制的服务器或Cloud Functions)中运行,因此不会被您的应用程序用户滥用。