Advertisement
Guest User

Untitled

a guest
Oct 4th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express'),
  2.     router  = express.Router(),
  3.     db  = require('../models');
  4. var passport = require('passport');
  5. var LocalStrategy = require('passport-local').Strategy;
  6. const { check, validationResult, body } = require('express-validator/check');
  7. var bcrypt = require('bcryptjs');
  8. var passport = require('passport');
  9. var LocalStrategy = require('passport-local').Strategy;
  10.  
  11. router.get('/register', function(req, res) {
  12.     res.render('register');
  13. });
  14.  
  15. router.get('/login', function(req, res) {
  16.     req.flash('success_msg', 'wea probando el mierda');
  17.     req.flash('err_msg', 'wea probando el pichicaca');
  18.     res.render('login');
  19. });
  20.  
  21.  
  22. // VALIDACION
  23. router.post('/register',[
  24.     body('name', 'Debe ingresar un nombre').not().isEmpty(),
  25.     body('username','Debe ingresar un username').not().isEmpty(),
  26.     body('email').isEmail().withMessage('Debe ingresar un email'),
  27.     body('password', 'Debe ingresar una contraseña').not().isEmpty(),
  28.     body('password2', 'Las Contraseñas no coinciden')
  29.         .exists()
  30.         .custom((value, { req }) => value === req.body.password)
  31. ], function(req, res, next){
  32.     var name = req.body.name;
  33.     var email = req.body.email;
  34.     var username = req.body.username;
  35.     var password = req.body.password;
  36.     var password2 = req.body.password2;
  37.  
  38.     var errors = validationResult(req);
  39.     if(!errors.isEmpty()){
  40.         return res.render('register',{
  41.             errors: errors.array()
  42.         });
  43.     }else{
  44.         bcrypt.genSalt(10, function(err, salt){
  45.             bcrypt.hash(password, salt, function(err, hash){
  46.                 db.User.findOrCreate({
  47.                     where:{
  48.                         nombre: name,
  49.                         email: email,
  50.                         username: username,
  51.                         password: hash
  52.                     }, defaults: {
  53.                         tipo: 1
  54.                     }
  55.                 }).spread(function(user, created){
  56.                     console.log(user.get({
  57.                         plain: true
  58.                     }));
  59.                 });
  60.             });
  61.         });
  62.         req.flash('success_msg','Te registraste y puedes logear wea');
  63.         res.redirect('/users/login');
  64.     }
  65.     next();
  66. });
  67.  
  68. passport.use(new LocalStrategy(
  69.   function(username, password, done) {
  70.         db.User.findOne({where:{
  71.             username: username
  72.         }}).then(function(user){
  73.             bcrypt.compare(password, user.password, function(err, isMatch){
  74.                 if (err) throw err;
  75.                 if (isMatch){
  76.                     // console.log(user);
  77.                     console.log('gamalll');
  78.                     return done(null, user);
  79.                 } else{
  80.                     return done(null, false, {message: 'Invalid Password'});
  81.                 }});
  82.         }).catch(function(err){
  83.             console.log(err);
  84.         });
  85.     }
  86. ));
  87.  
  88. passport.serializeUser(function(user, done) {
  89.     done(null, user.id_usuario);
  90. });
  91.  
  92. passport.deserializeUser(function(id, done) {
  93.     db.User.findById(id, function(err, user){
  94.         done(err, user);
  95.     });
  96. });
  97.  
  98. router.post('/login',
  99.     passport.authenticate('local',{
  100.         successRedirect:    '/',
  101.         failureRedirect: '/users/login',
  102.         failureFlash: true
  103.     }));
  104.  
  105. router.get('/logout', function(req, res){
  106.     req.logout();
  107.     req.flash('success_msg', 'Te saliste');
  108.     res.redirect('/users/login');
  109. });
  110.  
  111. module.exports = function(app){
  112.     app.use('/users', router);
  113. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement