我正在尝试创建密码重置机制并且卡住了。有关如何使用Firebase基本电子邮件/密码身份验证的任何建议
答案 0 :(得分:9)
[Firebase工程师 - 更新2014-01-27]
Firebase Simple Login现在支持密码重置以进行电子邮件/密码验证。
每个简单登录客户端库都有一个新方法,可以为指定的电子邮件地址生成密码重置电子邮件 - 网络和Android上的sendPasswordResetEmail()
以及iOS上的sendPasswordResetForEmail()
。
此电子邮件将包含一个临时令牌,用户可以使用该令牌登录其帐户并更新其凭据。此令牌将在24小时后或用户更改密码时到期,以先发生者为准。
另请注意,Firebase简单登录可以完整配置电子邮件模板以及发送地址(包括来自您域中的付费帐户的whitelabel电子邮件)。
要访问此功能,您需要将客户端库更新为v1.2.0
或更高版本。要获取最新版本,请查看https://firebase.google.com/docs/。
另外,请查看https://firebase.google.com/docs/auth/web/password-auth以获取最新的Firebase简单登录 - Web客户端文档。
答案 1 :(得分:4)
这是Firebase不能很好地完成的事情。您会注意到它需要用户记住他们的旧密码。通常,如果你想重置密码,那是因为你已经忘记了密码。希望改进他们为帐户管理提供的方法。
答案 2 :(得分:0)
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');
}
});
答案 3 :(得分:0)
这是第一个在试图找出我的问题时出现的google结果..对于任何使用yeoman angularfire生成器但想要添加发送电子邮件功能的人,这应该可行。 将以下内容添加到simpleLogin.js中的简单登录工厂:
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)
};