尝试重置密码时找不到用户

时间:2016-08-04 16:46:26

标签: meteor meteor-accounts

我有一位忘记密码的用户。使用Accounts软件包,用户尝试使用"重置密码"重置密码。功能。当他们输入他们的电子邮件地址时,它会说明" User Not Found"。

造成这种情况的原因是什么?更重要的是我该如何解决?我一直在试图找到一个解决方案的墙上,所以任何帮助都会很棒。我试图复制,但我的测试帐户没有相同的问题。

我的构建是Meteor 1.2,包含帐户密码和帐户基础包。我的设置是:

passwordSignupFields: "USERNAME_AND_EMAIL"

1 个答案:

答案 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集合

中的数据库中