PassportJS 与猫鼬只发送一半的数据

问题描述

我目前设置了一个 mongoose 数据库,并让 Passport-local-mongoose 与 express-session 一起访问它,这样我就可以创建一个会话 cookie。我遇到的问题是,passport-local-mongoose 会自行完成所有的散列、加盐、注册登录。这很好,但问题是在我的控制台中我可以查看用户名及其盐的哈希值,但实际服务器只能访问用户名。 mongoose 的哈希和其他项目永远不会发送到服务器,我需要访问它们。我已经得出结论,这与护照本地猫鼬有关,因为我通常可以使用 bcrypt 之类的东西进行自定义散列,这些东西工作得很好。

例如我的服务器会收到这个, { _id: 5ffe64e9b6fe7b4ce115c9a1,用户名: 'myUsername',__v: 0 } 当它使用此代码

Myusermodel.find({},(err,user)=>{
    console.log(user);
});

但是在我的控制台内运行 db.UserDatabase.find() 我得到了。

{ "_id" : ObjectId("5ffe64e9b6fe7b4ce115c9a1"),"username" : "myUser","salt" : "SALT_HERE","hash" : "HASH_HERE","__v" : 0 }

我已经尝试研究并查看此问题的堆栈溢出,并且我已经确保我的数据库已正确连接和连接。我可以使用我的服务器在我的数据库添加删除项目,它只是不检索它应该检索的所有内容

你可能会问我为什么要访问哈希和盐?原因是我想探索一些需要访问这些项目的数据库加密技术。

解决方法

如果您想查找并返回特定属性,请按照此代码

MyUserModel.find({},'_id username',function(err,user) { 
   console.log(user);
})