带有猫鼬的 PassportJS 只发送一半的数据

Posted

技术标签:

【中文标题】带有猫鼬的 PassportJS 只发送一半的数据【英文标题】:PassportJS with mongoose only sending half the data 【发布时间】:2021-04-18 01:42:02 【问题描述】:

我目前设置了一个 mongoose 数据库,并让 passport-local-mongoose 与 express-session 一起访问它,这样我就可以创建一个会话 cookie。我遇到的问题是,passport-local-mongoose 会自行完成所有的哈希、加盐、注册和登录。这很好,但问题是在我的控制台中我可以查看用户名及其盐的哈希值,但实际的服务器只能访问用户名。猫鼬的哈希和其他项目永远不会发送到服务器,我需要访问它们。我已经得出结论,这与 passport-local-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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于带有猫鼬的 PassportJS 只发送一半的数据的主要内容,如果未能解决你的问题,请参考以下文章

带有猫鼬的 GraphQL

javascript 带有猫鼬的NodeJS

带有猫鼬的打字稿:无法读取未定义的属性“CasterConstructor”

是否可以从猫鼬的文档中获取模型?

如何从猫鼬的数组中找到对象

从猫鼬的多个集合中获取数据?