Mongoose-加密失败,页面继续滚动

92dk7w1h  于 2022-09-21  发布在  Go
关注(0)|答案(1)|浏览(91)

我有一个名为‘Mongoose-Encryption’的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!');
            }
        }
    });
});

我到底做错了什么?我启动了电脑,停止了数据库,重新启动了它。注册已成功完成,但当我尝试登录页面时,页面仍在滚动...如果我不使用Mongoose加密,一旦我输入密码,登录页面就可以正常工作。

我可以清楚地看到,新用户名被添加到数据库中,如下所示:

{ "_id" : ObjectId("616a4aa45dfbf877d9f92468"), "email" : "aras@aras.com", "_ct" : BinData(0,"YbVYW9Pi6dz1yqRD7XgcEyEp48lLGVjp3J40ZgxGt/YuA8+eyiyebMaO9AGdygBj6A=="), "_ac" : BinData(0,"YQiV2QvS9AyrE1hjm81x5U8K6+0lT8h1ruxtCEZv/iwZWyJfaWQiLCJfY3QiXQ=="), "__v" : 0 }

但当我尝试登录时,它无法找回密码。在本例中,我使用的密码是“1”。

mnemlml8

mnemlml81#

尝试删除集合(首先将其保存在某个位置以备后用),然后重试。看起来不错!

相关问题