node mysql密码_nodeJS中如何对密码进行加密

我们并不希望存储在数据库中的用户密码是readable的,因为万一数据库被攻击了,用户的密码信息就会全部泄漏;

这个时候我们就需要对用户密码进行加密;在nodeJS中就需要用到node.bcrypt.js包;https://github.com/kelektiv/node.bcrypt.js​github.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});

});

}

})

}

})

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值