Advertisement
diegoaguilar

passport issue

Oct 12th, 2014
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // server.js
  2.  
  3. var express = require('express')
  4. var app = express()
  5. var https = require('https')
  6.  
  7. var jade = require('jade')
  8. var mongodb = require('mongodb')
  9. var mongoose = require('mongoose')
  10. var errorHandler = require('error-handler')
  11. var bodyParser = require('body-parser')
  12. var cookieParser = require('cookie-parser')
  13. var morgan = require('morgan')
  14. var passport = require('passport')
  15. var flash = require('connect-flash');
  16. var Account = require('./models/account')
  17.  
  18.     require('./db/mongoose.js')(mongoose)
  19.     var passport = require('./passport/passportConfig.js')(app,Account)
  20.     require('./passport/passportAuth.js')(passport,Account)
  21.  
  22.     app.use(morgan('dev'));                    
  23.     app.use(bodyParser.json());
  24.     app.use(bodyParser.urlencoded({ extended: true }));
  25.     app.use(cookieParser());
  26.     app.use(flash());
  27.     app.use(express.static(__dirname + '/public'));    
  28.     app.set('views', './views');
  29.     app.set('view engine', 'jade');
  30.     app.use(flash());
  31.    
  32.         // Require routes modules, setting up express to route
  33.         require('./routes/routes_www')(app)
  34.         require('./routes/routes_auth')(app,passport)
  35.         //require('./routes/routes_api')(app,questions,tags,users)
  36.  
  37.         // Start listening
  38.         app.listen(4020, function() {
  39.            
  40.             console.log("\nListening at \"Cuarenta y Veinte\" upon SSL configs, Mongoose and MongoDB connection setups")
  41.         })
  42.  
  43.  
  44.  
  45. // Important part of routes_auth
  46.  
  47. module.exports = (function (app, passport) {
  48.  
  49.     var Account = require('../models/account');
  50.  
  51.     app.route('/login')
  52.  
  53.         .post(passport.authenticate('local'), function (request,response) {
  54.             console.log("Done")
  55.             response.render('start',{user:request.local.email})
  56.         })
  57.  
  58. })
  59.  
  60. ....
  61.  
  62.  
  63.  
  64. // Passport Config
  65.  
  66.  
  67. module.exports = (function (app) {
  68.  
  69.     var passport        =       require('passport')
  70.     var session         =       require('express-session');
  71.     var MongoStore      =       require('connect-mongo')(session);
  72.     var Account         =       require('../models/account');
  73.    
  74.     app.use(session({
  75.                         secret:             'q~!!#s4HALA^MADRIDcds4<>>*S3',
  76.                         saveUninitialized:  false,
  77.                         resave:             false,
  78.                     }));
  79.    
  80.     app.use(passport.initialize());
  81.     app.use(passport.session());
  82.    
  83.     passport.serializeUser(function(user, done) {
  84.         done(null, user.id);
  85.     });
  86.  
  87.     passport.deserializeUser(function(id, done) {
  88.         Account.findById(id, function(err, user) {
  89.             done(err, user.local);
  90.         });
  91.     });
  92.    
  93.     return passport
  94. })
  95.  
  96.  
  97. // Passport Auth
  98.  
  99.  
  100. module.exports = function(passport) {
  101.  
  102.     var Account         = require('../models/account');
  103.     var LocalStrategy   = require('passport-local').Strategy;
  104.  
  105.  
  106.  
  107.     passport.use(new LocalStrategy({usernameField: 'email', passwordField: 'password'},
  108.        
  109.         function (email,password,done) {
  110.  
  111.             Account.findOne({"local.email":email}, function (err,account) {
  112.                
  113.                 if (err) return done(err);
  114.  
  115.                 if(!account) return done(null,false, {message:"Usuario incorrecto."})
  116.  
  117.                 account.validPassword(password, function (err,matched) {
  118.  
  119.                     if (matched) return(null,account.local)
  120.  
  121.                     else return done(null, false, {message:"Contraseña incorrecta."})
  122.                 })                 
  123.             })
  124.     }))
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement