Advertisement
brandonemerson

users.js router

Apr 3rd, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. var express = require('express');
  2. var session=require('express-session');
  3. var router = express.Router();
  4. var User = require('../models/user');
  5. var multer=require('multer');
  6. var passport=require('passport');
  7. var LocalStrategy=require('passport-local').Strategy;
  8.  
  9. router.use(session({ secret: 'my super secret',name: 'my-id', resave: false, saveUninitialized: false }));
  10. router.use(passport.initialize());
  11. router.use(passport.session());
  12.  
  13.  
  14. /* GET users listing. */
  15. router.get('/', function(req, res, next) {
  16. res.send('respond with a resource');
  17. });
  18.  
  19. router.get('/register', function(req, res, next) {
  20. res.render('register',{
  21. 'title':'Register'
  22. });
  23. });
  24.  
  25. router.get('/login', function(req, res, next) {
  26. res.render('login',{
  27. 'title':'Login'
  28. });
  29. });
  30.  
  31. router.post('/register', multer({ dest: './uploads/'}).single('upl'), function(req, res, next) {
  32. //Get form values
  33. console.log(req.body);
  34. var name=req.body.name;
  35. var email=req.body.email;
  36. var username=req.body.username;
  37. var password=req.body.password;
  38. var password2=req.body.password2;
  39. console.log(name);
  40. console.log(email);
  41.  
  42. //Check for image field
  43. if(req.file){
  44. console.log('Uploading file');
  45.  
  46. //File info
  47. var profileImageOriginalName=req.files.profileImage.originalname;
  48. var profileImageName=req.files.profileImage.name;
  49. var profileImageMime=req.files.profileImage.mimeType;
  50. var profileImagePath=req.files.profileImage.path;
  51. var profileImageExtension=req.files.profileImage.extension;
  52. var profileImageSize=req.files.profileImage.size;
  53. } else{
  54. //Set default image
  55. var profileImageName='noImage.jpg';
  56. }
  57.  
  58. //Form validation
  59. req.checkBody('name','Name field is required').notEmpty();
  60. req.checkBody('email','Email is required').isEmail();
  61. req.checkBody('username','Username is required').notEmpty();
  62. req.checkBody('password','Password is required').notEmpty();
  63. req.checkBody('password2','Passwords do not match').equals(password);
  64.  
  65. var errors=req.validationErrors()
  66. console.log(errors);
  67. if(errors){
  68. res.render('register',{
  69. errors:errors,
  70. name:name,
  71. email:email,
  72. username:username,
  73. password:password,
  74. password2:password2
  75. });
  76. } else {
  77. var newUser = new User({
  78. name:name,
  79. email:email,
  80. username:username,
  81. password:password,
  82. profileImage:profileImageName
  83. });
  84.  
  85. //Create user
  86. User.createUser(newUser, function(error,user){
  87. if(error) throw error;
  88. console.log(user);
  89. });
  90.  
  91. //Success message
  92. req.flash('success','You are now registered and may log in');
  93. res.location('/');
  94. res.redirect('/');
  95. }
  96. });
  97.  
  98. passport.use(new LocalStrategy(
  99. function(username, password, done) {
  100. User.getUserByUsername({username: username}, function (err, user) {
  101. if (err) { return done(err); }
  102. if (!user) {
  103. return done(null, false, { message: 'Incorrect username.' });
  104. }
  105. user.comparePassword(password, function (err, isMatch) {
  106. if (err) { return done(err); }
  107. if(!isMatch){
  108. return done(null, false, { message: 'Incorrect password.' });
  109. } else {
  110. return done(null, user);
  111. }
  112. });
  113. });
  114. }
  115.  
  116. ));
  117. router.post('/login', passport.authenticate('local', {
  118. successRedirect: '/',
  119. failureRedirect: '/users/register'
  120. }),function(req,res,next){
  121. console.log('Authentication succesful');
  122. req.flash('success','You are logged in');
  123. res.redirect('/');
  124. });
  125.  
  126. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement