我有一位忘记密码的用户。使用Accounts软件包,用户尝试使用"重置密码"重置密码。功能。当他们输入他们的电子邮件地址时,它会说明" User Not Found"。
造成这种情况的原因是什么?更重要的是我该如何解决?我一直在试图找到一个解决方案的墙上,所以任何帮助都会很棒。我试图复制,但我的测试帐户没有相同的问题。
我的构建是Meteor 1.2,包含帐户密码和帐户基础包。我的设置是:
passwordSignupFields: "USERNAME_AND_EMAIL"
答案 0 :(得分:1)
重置用户密码时,Meteor会尝试通过提供的电子邮件查找用户。如果它无法使用电子邮件找到用户 - 它会抛出"用户未找到" - 链接到代码here
Meteor.methods({forgotPassword: function (options) {
check(options, {email: String});
var user = Accounts.findUserByEmail(options.email);
if (!user)
throw new Meteor.Error(403, "User not found");
const emails = _.pluck(user.emails || [], 'address');
const caseSensitiveEmail = _.find(emails, email => {
return email.toLowerCase() === options.email.toLowerCase();
});
Accounts.sendResetPasswordEmail(user._id, caseSensitiveEmail);
}});
用户是否提供了正确的电子邮件?检查所提供的电子邮件是否实际存在于Meteor.users
集合