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