Сериализация и десериализация выполняются несколько раз, один для локального и второй для входа в Facebook, когда я вхожу локально - PullRequest
0 голосов
/ 27 сентября 2018
var passportFacebook = require('../auth/facebook');
var passport = require('../auth/passport');    
router.post('/login', passport.authenticate('local-login', 
{
  successRedirect : '/users', // redirect to the secure protected section
  failureRedirect : '/auth/login', 
  failureFlash : true // allow flash messages
}));

/* FACEBOOK ROUTER */
router.get('/facebook',passportFacebook.authenticate('facebook'));

passport.js

passport.serializeUser(function(user, done) 
{
  console.log('++++++++localserializeUser'+JSON.stringify(user),user.id);
  done(null, user.id);
});

// used to deserialize the user
passport.deserializeUser(function(id, done) 
{
  connection.query("SELECT * FROM user WHERE id = ?",[id],function(err,rows)
 {
    console.log('-------------local deserializeUser'+id);
    done(err, rows[0]);
  });
});

facebook.js

passport.serializeUser(function(user, done) 
{     
    console.log('++++++facebookserializeUser'+JSON.stringify(user),user.id);
    done(null, user.id);
});

passport.deserializeUser(function(id, done) 
{
 connection.query("SELECT * FROM fbuser WHERE id = ?,[id],function(err,rows)
    {
        console.log('---------facebook deserializeUser'+id);
        done(err, rows[0]);
    });
});

я хочу, если я использую/ Вызовите стратегию локального входа, после чего выполняются только локальная сериализация и десериализация, а не сериализация и десериализация fb, и наоборот

...