node.js - Bcrypt 和 PassportJs 用户注册

标签 node.js express mongoose passport.js bcrypt

我不确定我是不是我们,ng bcrypt 是否正确。

这是我尝试编写的代码。

app.post('/kayıt/', function(req, res){
bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash(password, salt, function(err, hash) {
        let user = new User({
        isim:req.body.isim,
        email:req.email.isim,
        password:req.body:password,
});
user.save(function(err){
if(err){
  console.log(err);
}else{
res.redirect('/');
});

你觉得有没有错误?或者正确使用bcrypt和用户注册过程。(注意:在我的procet中,我卡在了另一个关于express-validator的代码块中,所以我尝试编写代码但我不确定它是否正确)

那么你能告诉我这些代码吗,如果错了我应该改什么,如果错了还有什么可以替代写这个注册部分?

最佳答案

有多种方法可以使用 bcrypt.js散列 密码。就像您可以使用 Promiseasyncsync 一样。您使用的是 async,它在单独的函数调用上生成 salthash。您的代码中的一个错误是它应该是 password:req.body.password 您需要在 body 之后使用 dot(.) 而不是 冒号(:)

除了您的代码之外,散列密码的一种方法是

 router.post('/kayıt', async (req, res) => {
     //hashed password 
    const salt = await bcrypt.genSalt(10);
    const hashedPassword = await bcrypt.hash(req.body.password, salt);

    const user = new User({
       isim: req.body.isim,
       email: req.body.email,
       password: hashedPassword
    });
    user.save(function(err) {
             if (err) {
                console.log(err);
             } else {
                res.redirect('/');
               }
             });
         });

可以看看here .

关于node.js - Bcrypt 和 PassportJs 用户注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61984199/

相关文章:

javascript - 如何使用express4从 Node 中的html表单获取发布数据?

javascript - mongoose/mongodb 查询从 javascript 数组中的每个发件人获取最后一个文档

javascript - 在 Electron 应用程序中隐藏密码

javascript - 使 Express 中的特定路由的优先级高于动态路由

node.js - 在express.js中完成处理请求

node.js - Mongoose 中的 Model.findOne() 和 Model.findById() 有什么区别?

javascript - Mongoose 没有返回,但 mongo shell 已返回

javascript - 无法在nodeJS中调用Socket.on()

javascript - Jade 中是数组吗?循环遍历集合与显示为字符串

javascript - grunt-injector - 如何使用 Grunt 的 'dynamically built files objects.'?