I'm trying to write a reset password function, so I want to find the user by resetPasswordToken. The result returns that the token expired (no result returned), so I verified the token in the db by going into mongo and executing the same query.
The backend code:
User
.findOne({resetPasswordToken: token}, function(err, user) {
if (err) {
console.log("Server error searching for user.", err);
callback("Server error searching for user.");
} else {
console.log(user);
if(user){
console.log("User exists! Create token for user ", user);
saveNewPass(user, password, callback);
} else {
console.log("The password reset token has expired. Request a new reset password link.");
callback(null, {message: null, error: 'The password reset token has expired.'});
}
}
});
It returns the password reset token has expired, which means there is no result coming back.
In mongo shell, I first searched for the record using:
db.users.find({username: "myusername"})
Which returns:
{
"_id" : ObjectId("5908913f6e738b1eef729119"),
"username" : "myusername",
"password" : "$2a$10$jL5BuxYSA/jiiGiwCxKAGO7ISNaOiFTqX1.RUqJrcVA7x4kgfVD8u",
"resetPasswordExpires" : ISODate("2017-05-06T23:33:34.036Z"),
"resetPasswordToken" : "65bce3ff4183a9e78eb96f71c2f5ea6449369259"
}
Then, I copied and pasted the string value of the resetPasswordToken attribute, and ran this query:
db.users.find({resetPasswordToken: "65bce3ff4183a9e78eb96f71c2f5ea6449369259"})
I get NOTHING. What is the deal? I originally thought it was that I was doing date comparison in my search, so I removed it. This is strange.
via user3561890
No comments:
Post a Comment