【问题标题】:PassportJS with mongoose only sending half the data带有猫鼬的 PassportJS 只发送一半的数据
【发布时间】: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 }

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

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

【问题讨论】:

    标签: node.js express mongoose passport.js passport-local-mongoose


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 2015-11-27
      • 1970-01-01
      • 2023-03-13
      • 2018-09-24
      • 2019-01-17
      相关资源
      最近更新 更多