带有猫鼬的 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 只发送一半的数据的主要内容,如果未能解决你的问题,请参考以下文章