有人使用meteorImport将端口用户的帐号转移到meteor上吗? 我有一个充满用户数据的json文件。它是一个非常直接的数据结构,可以很好地导入我的Meteor.users集合,但在运行自动发布时,然后记录用户数据,它似乎就消失了。
如果我在mongodb终端中运行db.users.find(),数据似乎就在那里。
我已经读过meteor默认提供一些字段(用户名,电子邮件,个人资料)。所以我已经将这些添加到我的json文件中了,我唯一可以使用Meteor.users.find().fetch()
登录客户端的是_Id
。
如果我尝试使用电子邮件和密码登录(它已被编码),则表示找不到该用户。
Template.manage.events({
"click #submitLogin" : function(e, t){
e.preventDefault();
//http://blog.benmcmahen.com/post/41741539120/building-a-customized-accounts-ui-for-meteor
var email = t.find("#username").value;
var password = t.find("#password").value;
//By default the server publishes username, emails,
//and profile (writable by user).
Meteor.loginWithPassword(email, password, function(err){
if(err){
alert(err);
}else{
alert("YOU ARE NOW LOGGED IN");
Router.go("postLogin/teamMembersTable");
}
});
return false;
},
"click #forgotPW": function(err){
alert("CLICK ENCOUNTERED ON FORGOT PW" + err);
}
您认为我在记录用户时出错了什么导致我收到用户未找到错误?最重要的是......我该如何解决这个问题?
答案 0 :(得分:0)
默认情况下,我认为Meteor只发布'个人资料'密钥数据,除非您自己专门发布用户,在这种情况下,它会发布所有内容,这也不是您想要的。
所以你需要发布 在服务器上:
Meteor.publish('users', function() {
return Meteor.users.find({},{fields: {name:1, email:1 ...<-- the fields you want to publish here }});
})
并在客户端
Meteor.subscribe('users');
您还需要权限规则来阻止前端修改您的收藏:
Meteor.users.deny(
{
update: function () { return true; },
remove: function () { return true; }
}
);