Guest User

Untitled

a guest
May 19th, 2018
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. var express = require('express');
  2. var router = express.Router();
  3. var passport = require('passport');
  4. var User = require('../models/User');
  5. var nodemailer = require('nodemailer');
  6.  
  7.  
  8. // Check if user is authed
  9. function isAuthenticated(req, res, next) {
  10. console.log('USER AUTHED? ', req.isAuthenticated());
  11.  
  12. if (req.isAuthenticated()) {
  13. res.json({authed: true, user: req.user});
  14. next();
  15. } else {
  16. res.json({authed: false});
  17. }
  18. }
  19.  
  20.  
  21. // Passport
  22. passport.serializeUser(function (user, cb) {
  23. cb(null, user);
  24. });
  25.  
  26. passport.deserializeUser(function (obj, cb) {
  27. cb(null, obj);
  28. });
  29.  
  30. router.use(passport.initialize());
  31. router.use(passport.session());
  32.  
  33. /* GET users listing. */
  34. router.post('/signup', function (req, res, next) {
  35. User.register(new User({ username: req.body.username }), req.body.password, function (err, user) {
  36. if (err) {
  37. res.json({ err: err });
  38. }
  39. // saving user details
  40. user.firstName = req.body.firstName;
  41. user.lastName = req.body.lastName;
  42. user.email = req.body.email;
  43. user.subscribe = req.body.subscribe;
  44. user.save(function (err) {
  45. // Save user details
  46. });
  47. if (user.subscribe === true) {
  48. let transporter = nodemailer.createTransport({
  49. service: 'gmail',
  50. auth: {
  51. user: 'tenkaklet@gmail.com',
  52. pass: 'Aaadktda:gmail'
  53. }
  54. });
  55.  
  56. const mailOptions = {
  57. from: 'tenkaklet@gmail.com',
  58. to: user.email,
  59. subject: 'Welcome to TenkShop!',
  60. html: `
  61. <h1 style="font-family: sans-serif; color: red;">Welcome to TenkShop!</h1>
  62. <p style="font-family: sans-serif;">Glad you're able to make the right choice of buying some cool clothes!</p>
  63. `
  64. };
  65. transporter.sendMail(mailOptions, function (err, info) {
  66. if (err) {
  67. console.log('err', err);
  68. } else {
  69. console.log('info ', info);
  70. }
  71. });
  72. }
  73. passport.authenticate('local')(req, res, function () {
  74. req.session.save(function (err) {
  75. if (err) {
  76. return next(err);
  77. }
  78. res.json({ created: true, redirect: '/' });
  79. });
  80. });
  81. });
  82. });
  83.  
  84. router.post('/login', passport.authenticate('local'), function (req, res, next) {
  85. res.status(200).json({
  86. redirect: '/'
  87. });
  88. });
  89.  
  90. router.get('/secure', isAuthenticated, function (req, res, next) {
  91. console.log('in secure');
  92. });
  93.  
  94. router.get('/logout', function (req, res, next) {
  95. req.logout();
  96. res.redirect('/');
  97. });
  98.  
  99. module.exports = router;
Add Comment
Please, Sign In to add comment