0

尝试创建和身份验证匿名做:

Meteor.startup(function () {

  // Allocate a new user id.
  if (!Meteor.userId()) {
    var pass = Random.create().id();
    var email = pass+'@example.com';
    Accounts.createUser({password: pass, email: email}, function(err){
      Meteor.loginWithPassword({password: pass, email: email});
    });
  } else {
  }
});

这几乎工作得很好。但有时流星会同时创建两个用户。:(

4

1 回答 1

0

这取决于你的意思,“流星一次创建两个用户”......

如果您的意思是“为什么在我访问该站点时不断创建用户记录”,那么它是因为 Meteor 需要一些时间来登录用户并且在该过程完成之前,Meteor.userId() 将为空。请参阅http://docs.meteor.com/#meteor_loggingin

如果您发布的代码实际上是在第一次访问时创建了 2 个用户(使用干净的数据库),那么我也会感到惊讶。完整的重现将有助于调试该案例;也许您可以通过指向 github 的链接更新您的答案?

于 2013-10-09T00:05:21.500 回答