0

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

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

  • 帐户密码 1.1.0
  • 艾伦宁:角色 1.2.13
  • 自动发布 1.0.3
  • 不安全的 1.0.3
  • 铁:路由器1.0.7
  • jQuery 1.11.3_2
  • 流星平台 1.2.2
  • mizzao:jquery-ui 1.11.2
  • mquandalle:玉 0.4.1
  • 语义:ui-css 1.11.5
  • 用户帐户:核心 1.8.1
  • 用户帐户:语义-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)); 
    }
}

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

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 方法完成执行后这些电子邮件、角色和其他字段可能会被删除,我会非常高兴!

4

0 回答 0