使用Express和JWT令牌重置密码

时间:2018-07-07 11:10:28

标签: express jwt

我正在尝试使用以下代码和邮递员重置用户密码。 但是我意识到,生成令牌后没有用户。控制台说null;

// Reset User Password
exports.resetPassword = function (req, res) {
  User.findOne({
    reset_password_token: req.body.token,
    reset_password_expires: {
      $gt: Date.now()
    }
  }).exec(function (err, user) {
    console.log('this user: ' + user)
    if (!err && user) {
      if (req.body.newPassword === req.body.verifyPassword) {
        user.hash_password = bcrypt.hashSync(req.body.newPassword, 10);
        user.reset_password_token = undefined;
        user.reset_password_expires = undefined;
        user.save(function (err) {
          if (err) {
            return res.status(422).send({
              message: err
            });
          } else {
            console.log(user.hash_password)
          }
        });
      } else {
        return res.status(422).send({
          message: 'Passwords do not match'
        });
      }
    } else {
      return res.status(400).send({
        message: 'Password reset token is invalid or has expired.'
      });
    }
  });
};

这就是我在邮递员中使用它的方式

{           
            "newPassword": "cocacola",
            "verifyPassword": "cocacola",
            "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1YjI3NjAyNDAwOWI1NDA5ZjMwNzAzZWYiLCJpYXQiOjE1MzA5NjA2NDEwOTN9.1LjroayiTWDNevShnH30n3LxUGCrazmTaJlHgOUNvJ0"
}

邮递员的回复是来自状态400的消息

0 个答案:

没有答案