我正在尝试创建一个密码重置机制,但是遇到了困难。有没有建议如何在Firebase基本的电子邮件/密码验证中实现这个功能。
我正在尝试创建一个密码重置机制,但是遇到了困难。有没有建议如何在Firebase基本的电子邮件/密码验证中实现这个功能。
[Firebase工程师-更新2014-01-27]
Firebase Simple Login现在支持电子邮件/密码身份验证的密码重置。
每个Simple Login客户端库都有一个新方法,用于为指定的电子邮件地址生成密码重置电子邮件 - Web和Android上的sendPasswordResetEmail()
以及iOS上的sendPasswordResetForEmail()
。
此电子邮件将包含一个临时令牌,用户可以使用该令牌登录其帐户并更新其凭据。此令牌将在24小时后或用户更改密码后过期,以先到者为准。
另请注意,Firebase Simple Login使完全配置电子邮件模板以及发送地址成为可能(包括付费账户的白标电子邮件来自您的域名)。
要获得此功能的访问权限,您需要将客户端库更新到版本v1.2.0
或更高版本。 要获取最新版本,请查看https://firebase.google.com/docs/。
此外,请查看https://firebase.google.com/docs/auth/web/password-auth了解最新的Firebase Simple Login-Web Client文档。
这是Firebase并不擅长的事情。你会注意到,它需要用户记住他们的旧密码。通常,如果你想重置密码,那是因为你已经忘记了它。希望他们能改进提供的账户管理方法。
这是我在尝试解决问题时找到的第一个谷歌搜索结果.. 对于任何使用yeoman angularfire generator但想要添加发送电子邮件功能的人,这应该有效。 将以下内容添加到simpleLogin.js中的simple login factory:
resetPassword: function(emailIn){
return auth.$resetPassword({
email: emailIn
}, function(error) {
if (error) {
switch (error.code) {
case "INVALID_USER":
console.log("The specified user account does not exist.");
break;
default:
console.log("Error resetting password:", error);
}
} else {
console.log("Password reset email sent successfully!");
}
});
},
并从您的login.js文件中调用它
$scope.resetPassword = function(email){
simpleLogin.resetPassword(email)
};
https://www.firebase.com/docs/security/simple-login-email-password.html
authClient.changePassword(email, oldPassword, newPassword, function(error, success) {
if (!error) {
console.log('Password change successfully');
}
});