我遇到了一个名为“猫鼬加密”的npm包的问题。这是我的密码。
main().catch((err) => console.log(err));
async function main() {
await mongoose.connect('mongodb://localhost:27017/userEncryptedDB', { useNewUrlParser: true });
}
const userSchema = new mongoose.Schema({
email: String,
password: String
});
const secret = 'xxs4Ox4nSKSVnJzIxzy+es6ouOmoMcqcarAnEVRP26Q=';
userSchema.plugin(encrypt, {secret: secret, encryptedFields: ['password']});
const User = mongoose.model('User', userSchema);现在,如果我不使用包,注册和登录到网站的工作正常,但如果我使用插件,它说:“你从来没有注册!”即使我注册了电子邮件和密码..。
app.post('/login', (req, res) => {
const email = req.body.username;
const password = req.body.password;
User.findOne({email: email, password: password}, (err, user) => {
if(err) {
console.error(err);
} else {
if(user){
console.log('You are already registered!');
res.render('secrets');
} else {
console.error('You are never registered!');
}
}
});
});我在这里做错什么了?我启动了计算机停止了数据库,重新启动了它。注册是成功的,但当我试图登录页面继续滚动..。如果我不使用猫鼬加密,登录页面工作良好,一旦我输入密码。
我可以清楚地看到,新的用户名被添加到数据库中,如下所示:
{ "_id" : ObjectId("616a4aa45dfbf877d9f92468"), "email" : "aras@aras.com", "_ct" : BinData(0,"YbVYW9Pi6dz1yqRD7XgcEyEp48lLGVjp3J40ZgxGt/YuA8+eyiyebMaO9AGdygBj6A=="), "_ac" : BinData(0,"YQiV2QvS9AyrE1hjm81x5U8K6+0lT8h1ruxtCEZv/iwZWyJfaWQiLCJfY3QiXQ=="), "__v" : 0 }但是当我尝试登录时,它无法检索密码。我在这里使用的密码是"1“。
发布于 2022-09-20 19:37:42
尝试删除集合(首先将其保存到某个地方供以后使用),然后再试一次。看起来不错!
https://stackoverflow.com/questions/69592430
复制相似问题