![](/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.