Meteor中的用户对象,丢失电子邮件和角色字段

时间:2015-03-26 00:12:30

标签: javascript node.js meteor meteor-accounts

正如标题所说,我的用户对象一旦到达客户端就会丢失字段。

以下是我正在使用的软件包列表:

  • accounts-password 1.1.0
  • alanning:roles 1.2.13
  • autopublish 1.0.3
  • 不安全1.0.3
  • iron:router 1.0.7
  • jquery 1.11.3_2
  • meteor-platform 1.2.2
  • mizzao:jquery-ui 1.11.2
  • mquandalle:jade 0.4.1
  • 语义:ui-css 1.11.5
  • useraccounts:core 1.8.1
  • useraccounts:semantic-ui 1.8.1

这是我的客户端代码。在模板事件中

var firstname = $("#firstname").val()
var lastname = $("#lastname").val()
var email = $("#email").val()
Meteor.call("createAdmin", firstname, lastname, email, function(error, result) {
    if(error) {
        console.log("ERROR: " + error);
    } else {
        console.log(JSON.stringify(result)); 
    }
}

这是我的服务器代码,流星方法:

createAdmin: function(firstname, lastname, email) {
   var loggedInUser = Meteor.user()
   if (!loggedInUser || !Roles.userIsInRole(loggedInUser, ['dc-admin'])) {
     throw new Meteor.Error(403, "Access denied")
   } else {
     var id;
     id = Accounts.createUser({email: email, password: "testpassword",
       profile: { first_name: firstname, last_name: lastname }
     });
     Roles.addUsersToRoles(id, ['dc-admin']);
     return Meteor.users.findOne({_id: id});
   }
 },

如果我在客户端记录返回的结果,我会得到这样的结果:

{"_id":"7j8RKLXiJZM6QqEkY",
 "createdAt":"2015-03-25T23:57:31.859Z",
 "services":
{"password":{"bcrypt":"$2a$10$Y3C6wy5Z5nxYbVnjHDRTkeshQOhI3LjEux7s24e/Wc3SOV2e1E/7a"}
},"emails": [{"address":"qweqwe@example.com","verified":false}],
"profile":{
    "first_name":"sdfdsfds",
    "last_name":"qweqewqe"},
"roles":
    ["dc-admin"]}

然而,一旦我真的尝试在客户端或者在服务器上获取记录,我只能得到这样的东西(并记住我仍然有自动发布+不安全的开发:

{"_id":"7j8RKLXiJZM6QqEkY","profile":{"first_name":"sdfdsfds","last_name":"qweqewqe"}}

如果有人能指出为什么这些电子邮件,角色和其他字段可能会在服务器端Meteor方法执行完毕后被删除,那我真的很开心!

0 个答案:

没有答案