簡體   English   中英

貓鼬預保存bcrypt未保存

[英]mongoose pre saved bcrypt not saved

我對bcrypt和mongoose預保存功能有疑問。

我的日志告訴我,一切都很好地進行了哈希處理……但是貓鼬沒有正確保存新的哈希處理密碼。

do post save 6BYpYJtD POST /api/v1/user 200 26.999 ms - 387 do pre save 6BYpYJtD $2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOPjgJKzptvrKXVgCBRrrFsMHMO

弄清楚: 6BYpYJtD是我生成的密碼, $2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOPjgJKzptvrKXVgCBRrrFsMHMO是我的預保存函數生成的哈希:

UserSchema.pre('save', function(next){
    var user = this;
        user.updated_at = Date.now;
    if(user.isModified('password'))
    {
        bcrypt.genSalt(SALT_WORK_FACTOR,function(err,salt){
            if(err) return next(err);
            bcrypt.hash(user.password,salt,function(err,hash){
                if(err) return next(err);
                console.log('do pre save',user.password,hash);
                user.password = hash;
                console.log(user.password);
                next();
            });
        });
    }

    return next();
});

沒有打印錯誤,所以我真的不知道,這可能是我的錯誤。 有什么建議嗎?

在經過數小時的調試之后,才發現我的問題的解決方案:

更改密碼信息后,您需要return next(user); 以您的用戶對象作為參數。 現在它就像一種魅力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM