我正在尝试构建一个具有一些社交功能的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 = "";
});
我的用户和我做错了吗?朋友班?
感谢您的帮助!
答案 0 :(得分:0)
您可以尝试仅使用指定的字段对其进行存档。
例如:
// name LIKE john and only selecting the "name" and "friends" fields, executing immediately
MyModel.find({ name: /john/i }, 'name friends', function (err, docs) { })