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,但它没有工作。我甚至尝试放弃收集重新开始。
1条答案
按热度按时间mqkwyuun1#
如果你使用的是mongoose加密库(https://www.npmjs.com/package/mongoose-encryption),这可能就是问题所在,据我所知,它是用来加密整个文档的。
尝试使用mongoose-field-encryption库(https://www.npmjs.com/package/mongoose-field-encryption)来加密特定的字段。
另外:“始终将密钥和机密存储在版本控制之外,并与数据库分开。”
您可能已经知道了这一点,并且仅为示例添加了秘密;但是记住不要把秘密直接写在源代码中。2使用类似环境变量的东西来代替。