samedi 9 mai 2020

how to automatically login person when password is changed with passport-local-mongoose

Can't login user automatically. my current 'update' function looks like this

exports.update = async (req, res) => {
const user = await User.findOne({
    resetPasswordToken: req.params.token,
    resetPasswordExpires: {$gt: Date.now()}
});
if(!user){
    req.flash('error', 'Password reset is invalid or has expired');
    return res.redirect('/login');
}

await user.setPassword(req.body.password);

user.resetPasswordToken = undefined;
user.resetPasswordExpires = undefined;
const updatedUser = await user.save();
await req.login(updatedUser);
req.flash('sucess', "Nice! your password has been reset! You are now logged in!");
res.redirect('/'); 
};

showing this error

req#login requires a callback function

Error: req#login requires a callback function
at IncomingMessage.req.login.req.logIn (/home/rajat/NOde/myProject-First/node_modules                  /passport/lib/http/request.js:47:44)
at exports.update (/home/rajat/NOde/myProject-First/controllers/authController.js:94:15)
at processTicksAndRejections (internal/process/task_queues.js:97:5)

I think the problem is with await req.login(updatedUser);




Aucun commentaire:

Enregistrer un commentaire