流星:Accounts.createUser()未创建用户 [英] Meteor: Accounts.createUser() doesn't create user
问题描述
我正在构建一个应用程序,人们无法自己创建帐户,但是第一个创建的用户(我)可以在应用程序中以表格形式创建用户.
i'm building an application where people Can't create their account by themselves but the first user created (me) can create users in a form in the application.
这就是为什么我在/lib/config/account.js中进行设置的原因:forbidClientAccountCreation: true,
It's why I setted in /lib/config/account.js: forbidClientAccountCreation: true,
我的问题是,登录后我无法在表单中创建用户.(即使我在上面将此选项设置为false. 这是我的代码:
My problem is, I can't create users in my form when I'm logged .. (even if I set this option above with false. Here is my code:
userAdd.js:
userAdd.js:
Template.userAdd.events({
'submit .new-user': function(event) {
event.preventDefault();
var email = $('input[name="email"]').val();;
var username = $('input[name="username"]').val();;
Accounts.createUser({
email: email,
username: username,
password: 'toto',
profile: {
}
});
event.target.email.value = "";
event.target.username.value = "";
}
});
/server/publications/user.js:
/server/publications/user.js:
Meteor.publish('users', function() {
return Meteor.users.find();
})
Meteor.users.allow({
'insert': function (userId, doc) {
return true;
}
});
我的userList,我在其中显示用户列表:
My userList where I display the list of the users:
Meteor.subscribe('users');
Template.usersList.helpers({
users: function() {
return Meteor.users.find();
}
});
我也尝试过使用Meteor.users.insert()
,但是它也不起作用..
I tried also with Meteor.users.insert()
but it doesn't work too ..
能帮我吗?
添加路线:
FlowRouter.route('/users', {
name: "users",
action: function() {
BlazeLayout.render('applicationLayout', {
menu: 'menu',
container: 'usersList'
});
}
});
AccountsTemplates.configureRoute('changePwd');
AccountsTemplates.configureRoute('forgotPwd');
AccountsTemplates.configureRoute('resetPwd');
AccountsTemplates.configureRoute('signIn');
AddUser.html
AddUser.html
<template name="userAdd">
<form class="ui form new-user">
<div class="inline fields">
<div class="seven wide field">
<label>Email</label>
<input type="text" name="email" placeholder="Email">
</div>
<div class="seven wide field">
<label>Username</label>
<input type="text" name="username" placeholder="Username">
</div>
<button class="ui button icon right labeled teal" type="submit" name="submit"><i class="right checkmark icon"></i>Valider</button>
</div>
</form>
</template>
user.js
Template.tableUser.helpers({
email: function() {
return this.emails[0].address;
}
});
.包裹
insecure # Allow all DB writes from clients (for prototyping)
kadira:flow-router
semantic:ui
flemay:less-autoprefixer
underscore
kadira:blaze-layout
arillo:flow-router-helpers
zimme:active-route
aldeed:collection2
accounts-password
useraccounts:flow-routing
useraccounts:semantic-ui
accounts-base
所有与帐户有关...
That's all related to the Accounts...
推荐答案
感谢@JeremyK和@Sasikanth! 现在正在工作,
Thanks @JeremyK and @Sasikanth! It's working now,
我将代码更改为服务器端.不知道一切是否完美,但这是工作代码:
I changed my code to server side. Don't know if all is perfect but here is the working code:
addUser.js:
addUser.js:
Meteor.subscribe('users');
Template.userAdd.events({
'submit .new-user': function(event) {
event.preventDefault();
var email = $('input[name="email"]').val();
var password = $('input[name="password"]').val();
var firstname = $('input[name="firstname"]').val();
var lastname = $('input[name="lastname"]').val();
Meteor.call("createUsers", email, password, firstname, lastname);
event.target.email.value = "";
event.target.password.value = "";
event.target.firstname.value = "";
event.target.lastname.value = "";
}
});
/server/methods/user.js
/server/methods/user.js
Meteor.methods({
createUsers: function(email, password, firstname, lastname) {
Accounts.createUser({
password: password,
username: firstname + ' ' + lastname,
email: email,
createdAt: new Date(),
});
},
deleteUser : function(id){
return Meteor.users.remove(id);
},
});
user.js
Template.tableUser.events({
"click .delete": function () {
var idUser= this._id;
Meteor.call('deleteUser',{_id:idUser})
}
});
非常感谢:)
这篇关于流星:Accounts.createUser()未创建用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!