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

时间:2015-12-18 01:56:30

标签: meteor meteor-accounts

我使用{{> loginButtons}}模板和帐户密码创建了一个新用户,并且我已成功登录,但是当我退出并尝试使用我设置的密码重新登录时,我得到“用户没有设置密码”错误。

我的服务器文件夹中的accountsServer.js中有以下代码:

DocumentFilter

我在客户端文件夹的accountsClient.js中设置了USERNAME_ONLY配置选项:

insertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr)

有人可以帮帮我吗?当我在Accounts.onCreateUser()函数中完全注释掉代码时,错误消失了,所以我认为这是问题的根源,但我不确定是什么导致它。

1 个答案:

答案 0 :(得分:1)

也许是因为this

  

默认的创建用户功能只是将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;
});