使用express和JWT令牌重置密码
我正在尝试使用以下代码和邮递员重置用户密码。 但我意识到,在我生成令牌后,没有用户。控制台显示使用express和JWT令牌重置密码,express,jwt,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(fu
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"
}
Postman中的响应是来自状态400的消息您的意思是
console.log('this user:'+user)
是null
?如果不在上面,那么您应该会得到运行时错误,比如“无法读取未定义的的属性哈希密码
”,因为这可能是失败的console.log(user.hash密码)
@SureshPrajapati you's right console.log('此用户:'+用户)为空您确定数据库中存在此特定记录吗?您能否附上上述令牌的查询结果?