![](/img/trans.png)
[英]Unable to store bcrypt hashed password from JSON into mongodb using mongoose
[英]Cant insert hashed(bcrypt) password in mongodb using mongoose
这是我的用户架构
let mongoose = require('mongoose');
mongoose.set('debug', true);
//user schema
const UserSchema = mongoose.Schema({
name:{
type:String,
required:true
},
email:{
type:String,
required:true
} ,
username:{
type:String,
required:true
},
password:{
type:String,
required:true
}
});
const User = mongoose.model('User',UserSchema);
module.exports = User;
这是试图插入新用户的用户路由文件
if(errors){
res.render('register',{
errors:errors
})
}else{
bcrypt.genSalt(10,(err,salt)=>{
bcrypt.hash(password,salt,(err,hash)=>{
if(err){
console.log("hash did not work");
}
newUser.password = hash;
console.log(newUser.password);
});
})
than()
var newUser = new User({
name:name,
email:email,
username:username,
password:password
});
console.log(newUser);
newUser.save((err)=>{
if(err){
console.log(err)
return;
}else{
req.flash('success','your now registered and can login');
res.redirect('./login');
}
});
}
我也尝试将它直接保存给新用户而不是保存
newUser.password = hash;
我在控制台登录时密码被散列,但是在新用户中它不存储为散列值, 例如来自db的示例
您应该将newUser.save移至bcrypt.hash
if(errors){
res.render('register',{
errors:errors
})
}else{
bcrypt.genSalt(10,(err,salt)=>{
bcrypt.hash(password,salt,(err,hash)=>{
if(err){
console.log("hash did not work");
}
var newUser = new User({
name: name,
email: email,
username: username,
password: hash
});
console.log(newUser);
newUser.save((err)=>{
if(err){
console.log(err)
return;
}else{
req.flash('success','your now registered and can login');
res.redirect('./login');
}
});
});
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.