Advertisement
Guest User

Untitled

a guest
Mar 21st, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. var smtpTransport = nodemailer.createTransport({
  2. service: 'Gmail',
  3. auth: {
  4. user: 'myGmail@gmail.com',
  5. pass: 'myPassword'
  6. }
  7. });
  8.  
  9. var smtpTransport = nodemailer.createTransport("SMTP",{
  10. service: 'Gmail',
  11. auth:{
  12. XOAuth2: {
  13. user:"myGmail@gmail.com",
  14. clientId:"myclientID.apps.googleusercontent.com",
  15. clientSecret:"myClientSecret",
  16. refreshToken:"refreshToken"
  17. }
  18. }
  19.  
  20. app.post('/forgot', function(req, res, next) {
  21. async.waterfall([
  22. function(done) {
  23. crypto.randomBytes(20, function(err, buf) {
  24. var token = buf.toString('hex');
  25. done(err, token);
  26. });
  27. },
  28. function(token, done) {
  29. var resetEmail = req.body.email.toLowerCase();
  30. console.log("LowerCase email " + resetEmail);
  31. User.findOne({ email: resetEmail }, function(err, user) {
  32. if (!user) {
  33. console.log('error', 'No account with that email exists.');
  34. req.flash('error', 'No account with that email address exists.');
  35. return res.redirect('/forgot');
  36. }
  37.  
  38. console.log("setting token");
  39. user.resetPasswordToken = token;
  40. user.resetPasswordExpires = Date.now() + 3600000; // 1 hour
  41.  
  42. user.save(function(err) {
  43. done(err, token, user);
  44. });
  45. });
  46. },
  47. function(token, user, done) {
  48. var smtpTransport = nodemailer.createTransport("SMTP",{
  49. service: 'Gmail',
  50. auth:{
  51. XOAuth2: {
  52. user:"myGmail@gmail.com",
  53. clientId:"myclientID.apps.googleusercontent.com",
  54. clientSecret:"myClientSecret",
  55. refreshToken:"refreshToken"
  56. }
  57. }
  58. });
  59. var mailOptions = {
  60. to: user.email,
  61. from: 'passwordreset@demo.com',
  62. subject: 'Password Reset',
  63. text: 'You are receiving this because you (or someone else) have requested the reset of the password for your account.nn' +
  64. 'Please click on the following link, or paste this into your browser to complete the process:nn' +
  65. 'http://' + req.headers.host + '/reset/' + token + 'nn' +
  66. 'If you did not request this, please ignore this email and your password will remain unchanged.n'
  67. };
  68. smtpTransport.sendMail(mailOptions, function(err) {
  69. console.log("setting token 1");
  70. req.flash('info', 'An e-mail has been sent to ' + user.email + ' with further instructions.');
  71. //done(err, 'done');
  72. //return res.redirect('/checkEmail');
  73. });
  74.  
  75. res.redirect('/checkEmail');
  76. }
  77. ], function(err) {
  78. if (err) return next(err);
  79. res.redirect('/forgot');
  80. });
  81. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement