新用户无法在Meteor中更改密码

时间:2013-12-11 14:17:12

标签: meteor

当我添加新用户并打开收到的验证邮件中的链接时,新用户已登录但无法更改密码。当我转到“更改密码”时,我将“当前密码”留空,输入密码并单击“更改密码”并收到错误“匹配失败”。

使用Meteor.call从客户端创建用户以下方法:

Meteor.methods({
  createUser: function(user) {
    var userID = Accounts.createUser({
      username: user.username,
      email: user.email,
      profile: {
        firstName: user.firstName,
        lastName: user.lastName,
      }
    });
    Accounts.sendVerificationEmail(userID); 
  }
});

我对Accounts.config和Accounts.ui.config有以下设置:

Accounts.ui.config({
    passwordSignupFields: 'USERNAME_AND_EMAIL'
})

Accounts.config({
    forbidClientAccountCreation: false,
    sendVerificationEmail: true
})

谢谢: - )

1 个答案:

答案 0 :(得分:2)

为什么要将当前密码留空?

创建帐户时,您必须指定密码,否则将其视为null。

如果您打算以这种方式更改,请尝试在创建时传入password: ""

如果您希望他们在验证帐户后输入密码,我建议您编写一个更改方法。像这样:

Meteor.methods('changeMyPassword':function(newPassword) {
    Accounts.setPassword(this.userId, newPassword);
});

帐户验证电子邮件的目的是您使用指定的密码创建帐户,并在创建帐户后对其进行验证。

如何使用Accounts.createUser

的示例