Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- router.post('/resetPassword', function(req, res, next) {
- async.waterfall([
- function(done) {
- crypto.randomBytes(25, function(err, buf) {
- var token = buf.toString('hex');
- done(err, token);
- });
- },
- function(token, done) {
- User.findOne({ email: req.body.username}, function(err, user) {
- if (!user) {
- req.flash('error', 'No account with that email address exists.');
- return res.redirect('forgot');
- }
- user.resetPasswordToken = token;
- user.resetPasswordExpires = Date.now() + 3600000; // 1 hour
- user.save(function(err) {
- done(err, token, user);
- });
- });
- },
- function(token, user, done) {
- var transporter = nodemailer.createTransport({
- service: 'gmail',
- auth: {
- user: emailAddress,
- pass: config.emailPass
- }
- });
- var mailOptions = {
- to: user.email,
- from: emailAddress2,
- subject: 'Tracker Password Reset',
- text: 'A request has been made to update the password on the tracking site.nn' +
- 'Please click on the follow this link to do so:nn' +
- 'http://' + req.headers.host + '/users/reset/' + token + 'nn' +
- 'If you did not request this, please ignore this email and your password will remain unchanged.n'
- };
- transporter.sendMail(mailOptions, function(err, info){
- if (error) {
- done(err, 'done');
- console.log(error);
- } else {
- done(err, 'done');
- console.log('Email sent: ' + info.response);
- }
- });
- }
- ], function(err) {
- if (err) return next(err);
- req.flash('info', 'An e-mail has been sent to ' + user.email + ' with further instructions.');
- return res.redirect('back');
- });
- });
Add Comment
Please, Sign In to add comment