Advertisement
Guest User

Untitled

a guest
Jun 19th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. var express = require('express');
  2. var router = express.Router();
  3. var passport = require('passport');
  4. var LocalStrategy = require('passport-local').Strategy;
  5. var multer = require('multer');
  6.  
  7. var User = require('../models/user');
  8.  
  9. var storage = multer.diskStorage({
  10. destination: function (req, file, cb) {
  11. cb(null, 'public/uploads/avatars/')
  12. },
  13. filename: function (req, file, cb) {
  14. cb(null, req.body.username+'.jpg')
  15. }
  16. });
  17. var upload = multer({
  18. storage: storage,
  19. fileFilter: function(req, file, cb){
  20. req.checkBody('name', 'Name is required').notEmpty();
  21. req.checkBody('email', 'Email is required').notEmpty();
  22. req.checkBody('email', 'Email is not valid').isEmail();
  23. req.checkBody('username', 'Username is required').notEmpty();
  24. req.checkBody('password', 'Password is required').notEmpty();
  25. req.checkBody('password2', 'Passwords do not match').equals(req.body.password)
  26. req.getValidationResult().then(function(result) {
  27. cb(null, result.isEmpty())
  28. });
  29. //const valid = (validateRegister(req)) ? false : true;
  30. }
  31. });
  32.  
  33. // Register
  34. router.get('/register', function(req, res){
  35. res.render('register');
  36. });
  37.  
  38. // Login
  39. router.get('/login', function(req, res){
  40. res.render('login');
  41. });
  42.  
  43. // Register User
  44. router.post('/register', upload.single('avatar'), function(req, res){
  45. var name = req.body.name;
  46. var email = req.body.email;
  47. var username = req.body.username;
  48. var password = req.body.password;
  49. var password2 = req.body.password2;
  50. var hasAvatar = (req.body.avatar) ? true : false;
  51.  
  52.  
  53. var errors = req.validationErrors();
  54.  
  55. if(errors){
  56. res.render('register',{
  57. errors:errors
  58. });
  59. } else {
  60. var newUser = new User({
  61. name: name,
  62. email:email,
  63. username: username,
  64. password: password
  65. });
  66.  
  67. User.createUser(newUser, (err, user) => {
  68. if(err) throw err;
  69. });
  70. req.flash('success_msg', 'You are registered and can now login');
  71. res.redirect('/users/login');
  72. }
  73. });
  74.  
  75. passport.use(new LocalStrategy(
  76. function(username, password, done) {
  77. User.getUserByUsername(username, function(err, user){
  78. if(err) throw err;
  79. if(!user){
  80. return done(null, false, {message: 'Unknown User'});
  81. }
  82.  
  83. User.comparePassword(password, user.password, function(err, isMatch){
  84. if(err) throw err;
  85. if(isMatch){
  86. return done(null, user);
  87. } else {
  88. return done(null, false, {message: 'Invalid password'});
  89. }
  90. });
  91. });
  92. }));
  93.  
  94. passport.serializeUser(function(user, done) {
  95. done(null, user.id);
  96. });
  97.  
  98. passport.deserializeUser(function(id, done) {
  99. User.getUserById(id, function(err, user) {
  100. done(err, user);
  101. });
  102. });
  103.  
  104. router.post('/login',
  105. passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}),
  106. function(req, res) {
  107. res.redirect('/');
  108. });
  109.  
  110. router.get('/logout', function(req, res){
  111. req.logout();
  112.  
  113. req.flash('success_msg', 'You are logged out');
  114.  
  115. res.redirect('/users/login');
  116. });
  117.  
  118. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement