Advertisement
Guest User

Untitled

a guest
Jul 7th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. /*==== /FORGOT-PASSWORD/CONFIRMATION ====*/
  2.  
  3. siteRoutes.route('/password-reset/type/:response')
  4. .get(function(req, res){
  5. var resetRequest;
  6. var resetConfirmation;
  7. if (req.params.response = "request"){
  8. resetRequest = true;
  9. console.log("Request Param");
  10. console.log("Request is set to " + resetRequest);
  11. } else if (req.params.response = "confirmation"){
  12. resetConfirmation = true;
  13. console.log("Confirmation Param");
  14. console.log("Confirmation is set to " + resetConfirmation);
  15. } else {
  16. return null;
  17. console.log("Null");
  18. }
  19. res.render('pages/site/password-reset-confirmation.hbs', {
  20. message: req.flash('info'),
  21. resetRequest: resetRequest,
  22. resetConfirmation: resetConfirmation
  23. });
  24. });
  25.  
  26. /*==== /FORGOT-PASSWORD ====*/
  27.  
  28. siteRoutes.route('/password-reset')
  29.  
  30. .get(function(req, res){
  31. res.render('pages/site/forgot-password.hbs');
  32. })
  33.  
  34. .post(function(req, res){
  35. req.flash('info', 'Please check your email for the reset link.');
  36. res.redirect('/password-reset/type/request');
  37. })], function(error){
  38. if(error){
  39. console.log(error);
  40.  
  41. }
  42. })
  43. });
  44.  
  45. /*==== /RESET ====*/
  46.  
  47. siteRoutes.route('/password-reset/:token')
  48.  
  49. .get(function(req, res){
  50. var urlPath = url.parse(req.url).pathname.split('/');
  51. var urlToken = urlPath[2];
  52. console.log(urlToken);
  53. models.User.findOne({
  54. where: {
  55. resetPasswordToken: req.params.token,
  56. resetPasswordExpires: {
  57. $gt: moment().format('YYYY-MM-DD HH:mm:ss')
  58. }
  59. }
  60. }).then(function(user){
  61. res.render('pages/app/password-reset.hbs',{
  62. urlToken: urlToken,
  63. user: user
  64. });
  65. })
  66. })
  67.  
  68.  
  69. .post(function(req, res){
  70. async.waterfall([
  71. function(done){
  72. models.User.update({
  73. password: models.User.generateHash(req.body.password),
  74. resetPasswordToken: null,
  75. resetPasswordExpires: null
  76. }, { where: {
  77. resetPasswordToken: req.body.token,
  78. resetPasswordExpires: {
  79. $gt: moment().format('YYYY-MM-DD HH:mm:ss')
  80. }
  81. }})
  82. // Nodemailer
  83. var transporter = nodemailer.createTransport(sgTransport(options));
  84.  
  85. var mailOptions = {
  86. from: '"Test@test.com',
  87. to: req.body.email,
  88. subject: 'Your Password has Been Changed',
  89. text: 'Hello,nn' +
  90. 'This is a confirmation that the password for the email associated with your Test account, ' + req.body.email + ' has just been changed. If there has been a mistake or you did not change the password, then please contact us as soon as possible at support@test.comn'
  91. };
  92.  
  93. transporter.sendMail(mailOptions, function(error, info){
  94. if(error){
  95. return console.log(error + 'During Post');
  96. }
  97. console.log('Message sent: ' + info);
  98.  
  99. })
  100. }
  101. ])
  102. req.flash('info', 'You have successfully updated your password.');
  103. res.redirect('/password-reset/type/confirmation');
  104. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement