Guest User

Untitled

a guest
Jan 22nd, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. var nodemailer = require('nodemailer');
  2.  
  3. app.post('/forgot', function(req, res, next) {
  4. async.waterfall([
  5. function(done) {
  6. crypto.randomBytes(20, function(err, buf) {
  7. var token = buf.toString('hex');
  8. done(err, token);
  9. });
  10. },
  11. function(token, done) {
  12. User.findOne({ email: req.body.email }, function(err, user) {
  13. if (!user) {
  14. req.flash('error', 'No account with that email address exists.');
  15. return res.redirect('/forgot');
  16. }
  17.  
  18. user.resetPasswordToken = token;
  19. user.resetPasswordExpires = Date.now() + 3600000; // 1 hour
  20.  
  21. user.save(function(err) {
  22. done(err, token, user);
  23. });
  24. });
  25. },
  26. function(token, user, done) {
  27. console.log(token, "Token");
  28. console.log(user, "user")
  29. var smtpTransport = nodemailer.createTransport('SMTP', {
  30. service: 'gmail',
  31. auth: {
  32. user: 'abc@gmail.com',
  33. pass: '123456'
  34. }
  35. });
  36. var mailOptions = {
  37. to: user.email,
  38. from: 'myproducts@mailinator.com',
  39. subject: 'My Products Password Reset',
  40. text: 'You are receiving this because you (or someone else) have requested the reset of the password for your account.nn' +
  41. 'Please click on the following link, or paste this into your browser to complete the process:nn' +
  42. 'http://' + req.headers.host + '/reset/' + token + 'nn' +
  43. 'If you did not request this, please ignore this email and your password will remain unchanged.n'
  44. };
  45. smtpTransport.sendMail(mailOptions, function(err) {
  46. req.flash('info', 'An e-mail has been sent to ' + user.email + ' with further instructions.');
  47. done(err, 'done');
  48. });
  49. }
  50. ], function(err) {
  51. if (err) return next(err);
  52. res.redirect('/forgot');
  53. });
  54. });
Add Comment
Please, Sign In to add comment