【问题标题】:how to change username password using passport local mongoose如何使用护照本地猫鼬更改用户名密码
【发布时间】:2019-12-05 16:08:27
【问题描述】:
i'm trying to change the password of username using local mongoose 

i tried to use setPassword function but it does not seem to work

router.put('/admin/users/:username', function(req,res){
User.findByUsername.then(function(sanitizedUser){
    if (sanitizedUser){
        sanitizedUser.setPassword(req.body.password, function(){
            sanitizedUser.save();
            res.redirect("back");
        });
    } else {
        res.redirect("back");
    }
},function(err){
    console.error(err);
})
});

除了setpassword还有其他解决办法吗 我到底做错了什么?

【问题讨论】:

  • 我应该使用id还是用户名?
  • 我不确定你在哪里有这个方法findByUsername?那不是mongoose 方法吗?密码也一样?我通常会使用findByIdAndUpdate 方法

标签: node.js mongoose passport.js mongoose-schema passport-local


【解决方案1】:

我已经发布了我倾向于重置密码的方法(其中一部分包括散列,但其余部分相同)。除了我使用async/await

const { password } = req.body;

let restP = new User();

    try {
      const newP = await restP.generateHash(password.password);

      const resetP = await User.findByIdAndUpdate(
        req.params.id,
        { $set: { passwordHash: newP } },
        {
          fields: { passwordHash: 0 },
          new: true
        }
      )


      // return image user object
      res.send(resetP);
    } catch (error) {
      console.log(error);
      return res.status(400).send(error);
    }

【讨论】:

    猜你喜欢
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2017-05-12
    • 2018-07-31
    相关资源
    最近更新 更多