我正在使用angularJS和firebase作为后端来创建我的简单Web应用程序。 调用.resetPassword()方法时,会向用户发送包含临时密码的电子邮件,以便他可以登录到应用程序。 根据以下资源,临时密码的生命周期为24小时:
https://www.firebase.com/docs/web/api/firebase/resetpassword.html
所以,我有一个问题 - 临时密码到期后会发生什么?它只是丢弃了,旧密码可以再次使用吗?..
提前致谢
答案 0 :(得分:1)
基本上你可以更改用户密码,然后手动通过电子邮件发送给他。所以当我们注册到你的应用程序时,它会按以下顺序显示:
username---
Username
Password
Email
UID
那么当用户点击resetPassword时你必须生成一个随机密码,并给他发一封电子邮件......所以首先让我们解决发送电子邮件的问题:
首先注册Mandrill
1. register for Mandrill to get an API key
2. load jQuery
3. use $.ajax to send an email
所以这就是它的布局:
function randomPassword(){
var length = 8,
charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
retVal = "";
for (var i = 0, n = charset.length; i < length; ++i) {
retVal += charset.charAt(Math.floor(Math.random() * n));
}
return retVal;
}
别忘了将它添加到您的脚本标记中:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
所以你可以发送电子邮件:
和
$.ajax({
type: “POST”,
url: “https://mandrillapp.com/api/1.0/messages/send.json”,
data: {
‘key’: ‘YOUR API KEY HERE’,
‘message’: {
‘from_email’: ‘YOUR@EMAIL.HERE’,
‘to’: [
{
‘email’: ‘RECIPIENT_NO_1@EMAIL.HERE’,
‘name’: ‘RECIPIENT NAME (OPTIONAL)’,
‘type’: ‘to’
},
{
‘email’: ‘RECIPIENT_NO_2@EMAIL.HERE’,
‘name’: ‘ANOTHER RECIPIENT NAME (OPTIONAL)’,
‘type’: ‘to’
}
],
‘autotext’: ‘true’,
‘subject’: ‘Password generated’,
‘html’: ‘This is your Newly generated password’ + randomPassword
}
}
}).done(function(response) {
console.log(response);
});
有关发送电子邮件部分here
的详细信息如果您只是尝试使用firebase执行此操作,这是不可能的,正如frank在此处所说:How to extend lifetime of password, generated by ref.resetPassword()?