sqlite - passportjs local-strategy cant get route -


been wrestling problem 2 days :) appreciate help.

i'm trying build express authentication passportjs+sqlite+sequelize,

1)when put routes above app.use(passport.session()) login doesn't work

2) when put routes below passport.session app cant route

app.js        --- normal includes app.use(cookieparser()); app.use(session({   secret: 'ilovescotchscotchyscotchscotch',   resave: true,   saveuninitialized: true }));  var passport = require('passport');  app.use(passport.initialize());  app.use(passport.session());  var router = require('./routes/index')(passport);  app.use('/', router);  var initpassport  = require('./passp.js'); initpassport(passport); 

passport file

// load things need var localstrategy   = require('passport-local').strategy;  // expose function our app using module.exports module.exports = function(passport) {     var user = require('./dbcon.js');     passport.serializeuser(function(user, done) {         done(null, user.datavalues.id);     });  // used deserialize user     passport.deserializeuser(function(id, done) {         user.findone({where : {id : id}}).then(function(user) {             done(null, user);         }).catch(function(err){             console.log(err)         });     });       passport.use('local-signup', new localstrategy({             // default, local strategy uses username , password, override email             usernamefield : 'email',             passwordfield : 'password',             passreqtocallback : true // allows pass entire request callback         },         function(req, email, password, done) {             user.findone({where : {username : email } })                 .then(function(user){                     if(user === null) {                         user.create({                             username : email,                             password : password                         }).then(function(user){                             done(null, user);                         }).catch(function(err){                             console.log(err)                         })                     }                     else{                         done(null, false);                     }                  }).catch(function(err){                 console.log(err)             })          }     ))      passport.use('local-login', new localstrategy({             // default, local strategy uses username , password, override email             usernamefield : 'email',             passwordfield : 'password',             passreqtocallback : true // allows pass entire request callback         },         function(req, email, password, done) { // callback email , password our form             return  user.findone({where : {username : email } })                 .then(function (user) {                     if(user === null) done(null, true)                     if(user.datavalues.password === password)  done(null, user)                     else{                         done(null, true)                     }                  })         })     )  }; 

route file

module.exports = function(passport){  router.get('/', function(req, res, next) {     res.render('index', { title: 'express' }); });  router.get('/error', function(req, res, next) {     res.render('error', { title: 'express' }); });  router.get('/admin', function(req, res, next) {     res.render('admin', { title: 'express' }); });   router.post('/signup', function(req, res, next) {     passport.authenticate('local-signup', function(err, user, info) {         if (err) { return next(err); }         // redirect if fails         if (!user) { return res.redirect('/'); }         req.login(user, function(err) {             if (err) { return next(err); }             // redirect if succeeds             return res.render('admin');         });     })(req, res, next); });  router.post('/login', function(req, res, next) {     passport.authenticate('local-login', function(err, user, info) {         if (err) { return next(err); }         // redirect if fails         if (!user) { return res.redirect('/'); }         req.login(user, function(err) {             if (err) { return next(err); }             // redirect if succeeds             return res.render('admin');         });     })(req, res, next); });  return router 

} please me! thanks!

.then() recieve result first parameter, not error

try it:

// used deserialize user passport.deserializeuser(function(id, done) {     user.findone({where : {id : id}})     .then(function(user) {         done(null, user);     })     .catch(function(err){         done(err, null);     }); }); 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -