我想在不验证用户身份的情况下更改用户密码,而我想通过Ionic进行操作。
当前,这就是我所拥有的:
const user = firebase.auth().currentUser;
const credentials = firebase.auth.EmailAuthProvider.credential(user.email,
this._password);
user.reauthenticateWithCredential(credentials)
问题是我想在不验证用户身份的情况下更改用户密码,而那正是firebase.auth()。currentUser无法做到的。如果我们要与多个用户打交道,则后者将无法工作。
答案 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)中运行,因此不会被您的应用程序用户滥用。