0

我想以编程方式添加少数用户并在我的流星应用程序中使用其中一个用户登录。我找不到在服务器端添加用户的任何方法;所以我在客户端添加了两个按钮来生成用户并使用其中一个登录。我可以创建用户(我在 mogodb 中看到它们)但我无法登录,出现错误:密码不正确 [403]。我错过了什么?这是 client.js 代码

Template.hello.events({
 'click #createUsers': function () {
    console.log("Creating users...");
    var users = [
       { email: "dgra@gmail.com", username: "gra", name: "gra", roles: ['admin'] }
    ];
    _.each(users, function (user) {
        Accounts.createUser({
            email: user.email,
            password: "admin",
            profile: { username: user.username },
            profile: { name: user.name },
            roles: user.roles
        });
    });
},

 'click #logIn': function () {
     console.log("logIn gra...");
    Meteor.loginWithPassword("dgra@gmail.com", "admin", function (err) {
        if (err) {
            console.log("loginError: " + err);
        }
    });
 }
});
4

1 回答 1

1

我找不到在服务器端添加用户的任何方法

您可以从服务器添加用户。正如文档指出的那样,Accounts.createUser可以在任何地方运行。这是一个工作示例:

服务器/初始化.js

var insertUser = function() {
  var user = {
    email: 'dgra@gmail.com',
    username: 'gra',
    name: 'gra'
  };

  Accounts.createUser({
    username: user.username,
    email: user.email,
    password: 'admin',
    profile: {
      name: user.name
    }
  });
};

Meteor.startup(function() {
  if (Meteor.users.find().count() === 0) {
    insertUser();
  }
});

几点:

  1. 您只能添加一个配置文件对象。
  2. Accounts.createUser仅接受文档中显示的参数,因此您不能添加任意对象。
  3. 如果您尝试使用角色,则此处的示例显示了在创建帐户后添加的角色。
  4. 在上面的代码中,我只在数据库中没有用户的情况下添加用户。这便于测试,因为用户将在 a 之后自动插入meteor reset(无需按下按钮)。
于 2013-10-26T16:30:13.963 回答