当我添加新用户并打开收到的验证邮件中的链接时,新用户已登录但无法更改密码。当我转到“更改密码”时,我将“当前密码”留空,输入密码并单击“更改密码”并收到错误“匹配失败”。
使用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
})
谢谢: - )
答案 0 :(得分:2)
为什么要将当前密码留空?
创建帐户时,您必须指定密码,否则将其视为null。
如果您打算以这种方式更改,请尝试在创建时传入password: ""
。
如果您希望他们在验证帐户后输入密码,我建议您编写一个更改方法。像这样:
Meteor.methods('changeMyPassword':function(newPassword) {
Accounts.setPassword(this.userId, newPassword);
});
帐户验证电子邮件的目的是您使用指定的密码创建帐户,并在创建帐户后对其进行验证。
的示例