passport.js - Passport: session serialization failed with serialization functions present -


i'm adding authentication node app using `feathers-passport following configuration:

.configure(featherspassport({     secret: 'some-secret',     store: new mongostore({db: 'demo-session'}),     resave: false,     saveuninitialized: false })) 

and configure passport:

var localoptions = {     usernamefield: 'email',     passwordfield: 'password' };  passport.serializeuser(function(user, done) {     done(null, user._id); });  passport.deserializeuser(function(id, done) {   api.service('users').get(id, {}, done); });  passport     .use(new localstrategy(localoptions, function(email, password, done){         api.service('users').authenticatelocal(email, password, done);     })) 

to authenticate, have route setup:

.post('/users/authenticate', function(request, response, next){     passport.authenticate('local', function(error, user){         //error comes null , user valid object         request.login(user, function(error){             if(error) return next(error);             if(!user) return next(new error("no user found"));             else {                 var token = tokenissue({id: user.id});                 response.status(201).json({token: token, id: user.id});             }         });     })(request, response, next); }) 

however, session serialization fails standard error: failed serialize user session, indicate serializeuser , deserializeuser functions aren't present. except in case are. went through passport source , here (line 265 of authenticator.js):

var stack = this._serializers; (function pass(i, err, obj) { // serializers use 'pass' error skip processing   if ('pass' === err) {     err = undefined;   }   // error or serialized object obtained, done   if (err || obj || obj === 0) { return done(err, obj); }    var layer = stack[i];   if (!layer) {     return done(new error('failed serialize user session'));   } 

this._serializers prints out [] when var layer = stack[i] called, check if(!layer) passes , error thrown. seem passport isn't picking i've defined serialization functions , i'm unsure if that's result of passport or consequence of using feathers-passport. followed feathers-passport guide closely , can't figure out going wrong. appreciated.


Comments

Popular posts from this blog

javascript - Chart.js (Radar Chart) different scaleLineColor for each scaleLine -

apache - Error with PHP mail(): Multiple or malformed newlines found in additional_header -

java - Android – MapFragment overlay button shadow, just like MyLocation button -