返回没有身份验证信息的用户朋友

时间:2015-04-21 09:30:04

标签: node.js

我正在尝试构建一个具有一些社交功能的nodeJS应用。 每个用户都使用登录名/密码进行身份验证,服务器返回一个身份验证令牌。

每个用户都可以有朋友。这是我的用户模型:

var UserSchema = mongoose.Schema({
password: {
    type: String,
    required: true
},
email: {
    type: String,
    unique: true,
    required: true
},
name: String,
tokken: String,
tokkenValidUntil: Date,
friends: [{
    user: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "User"
    }
}],

});

在某些时候,我必须发送用户的好友列表。 我正在使用

return done(null, user);

序列化用户,用户发送。

问题:当用户朋友被序列化并退回时,它包含令牌,这是一个安全问题。

在发送回来之前,我是否必须删除每个用户的令牌?

例如:

user.friends.forEach(function(friendUser) {
     friend.user.token = "";
});

我的用户和我做错了吗?朋友班?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以尝试仅使用指定的字段对其进行存档。

Mongoose - Model

例如:

// name LIKE john and only selecting the "name" and "friends" fields, executing immediately
MyModel.find({ name: /john/i }, 'name friends', function (err, docs) { })