我使用{{>loginButtons}}模板和帐户密码创建了一个新用户,并成功登录,但当我注销并尝试使用我设置的密码重新登录时,我会收到"用户没有设置密码"错误。
我的服务器文件夹accountsServer.js中有以下代码:
Accounts.onCreateUser(function (user, options) {
someCollection.insert({
name: user.username,
elo: 1500,
});
return user;
});
我在我的客户端文件夹中的accountsClient.js中设置了一个USERNAME_ONLY配置选项
Accounts.ui.config({
passwordSignupFields: "USERNAME_ONLY"
});
有人能帮我吗?当我在Accounts.onCreateUser()函数中完全注释掉代码时,错误就会消失,所以我认为这是问题的根源,但我不确定是什么原因造成的。
也许是因为这个原因:
默认的创建用户函数只是将
options.profile
复制到新用户文档。调用onCreateUser
将覆盖默认值钩这只能调用一次。
因此,您的用户创建在注册之前不再复制用户中的选项。此外,您的参数options
和user
似乎颠倒了
你可以这样把这个逻辑加回来:
Accounts.onCreateUser(function (options, user) {
someCollection.insert({
name: user.username,
elo: 1500,
});
if (options.profile)
user.profile = options.profile;
return user;
});