我们并不希望存储在数据库中的用户密码是readable的,因为万一数据库被攻击了,用户的密码信息就会全部泄漏;
这个时候我们就需要对用户密码进行加密;在nodeJS中就需要用到node.bcrypt.js包;https://github.com/kelektiv/node.bcrypt.jsgithub.com
const bcrypt = require('bcrypt');
const User = require('../models/user');
router.post('/signup', (req, res, next) => {
User.find({email: req.body.email})
.exec()
.then(user => {
if (user.length >= 1) {
return res.status(409).json({
message: "mail exists"
});
} else {
bcrypt.hash(req.body.password, 10, (err, hash) => {
if (err) {
return res.status(500).json({
error: err
});
} else {
const user = new User({
_id: new mongoose.Types.ObjectId(),
email: req.body.email,
password: hash
});
user.save()
.then(result => {
console.log(result)
res.status(201).json({
message: "User created"
});
})
.catch(err => {
console.log(err)
res.status(500).json({error:err});
});
}
})
}
})
});