我想以编程方式添加少量用户,并在我的meteor应用程序中使用其中一个用户登录。我找不到任何在服务器端添加用户的方法;所以我在客户端添加了两个按钮来生成用户并使用其中一个登录。我可以创建用户(我在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);
}
});
}
});
答案 0 :(得分:1)
我找不到在服务器端添加用户的任何方法
您可以从服务器添加用户。当docs指出时,Accounts.createUser
会在任何地方运行。这是一个有效的例子:
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();
}
});
几点:
Accounts.createUser
只接受文档中显示的参数,因此您无法添加任意对象。meteor reset
之后自动插入(无按钮按下)。