Meteor在使用Accounts.onCreateUser()时会删除密码数据



我使用{{>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将覆盖默认值钩这只能调用一次。

因此,您的用户创建在注册之前不再复制用户中的选项。此外,您的参数optionsuser似乎颠倒了

你可以这样把这个逻辑加回来:

Accounts.onCreateUser(function (options, user) {
  someCollection.insert({
    name: user.username,
    elo: 1500,
  });
  if (options.profile)
    user.profile = options.profile;
  return user;
});

最新更新