mongodb Mongoose Encryption加密两个字段,我该怎么做?

bprjcwpo  于 2023-02-07  发布在  Go
关注(0)|答案(1)|浏览(156)
const adminsSchema = new mongoose.Schema({
    username: String,
    password: String,
});

const secret = "Thinkyoucancrackthisone";
adminsSchema.plugin(encrypt, {
    secret: secret,
    encryptedFields: ["password"]
});
const Admin = new mongoose.model("Admin", adminsSchema);
app.post("/register", function (req, res) {
    const user = new Admin({
        username: req.body.user,
        password: req.body.pass
    });
    user.save(function (err) {
        if (err) {
            res.send(err);
        } else {
            res.send("Admin creds added successfully");
        }
    });
});

因此,而不是得到5个字段我得到4个字段没有用户名字段
我尝试了不同的错别字,不同的方法,如excludefromencryption,但它没有工作。我甚至尝试放弃收集重新开始。

mqkwyuun

mqkwyuun1#

如果你使用的是mongoose加密库(https://www.npmjs.com/package/mongoose-encryption),这可能就是问题所在,据我所知,它是用来加密整个文档的。
尝试使用mongoose-field-encryption库(https://www.npmjs.com/package/mongoose-field-encryption)来加密特定的字段。
另外:“始终将密钥和机密存储在版本控制之外,并与数据库分开。”
您可能已经知道了这一点,并且仅为示例添加了秘密;但是记住不要把秘密直接写在源代码中。2使用类似环境变量的东西来代替。

相关问题