Функция deserializeUser никогда не вызывается с помощью стратегии Google в passportJS - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь настроить google auth с PassportJS, но моя функция deserializeUser никогда не вызывается.

Это моя конфигурация passport.js:

...
passport.serializeUser(function(user, done) {

        done(null, user.id);

    });

    passport.deserializeUser(function(sessionUser, done) {

      User.findById(sessionUser, function(err, user) {
             done(err, user);
         });
  });

passport.use('google', new GoogleStrategy({
        clientID        : process.env.GOOGLE_CLIENTID,
        clientSecret    : process.env.GOOGLE_CLIENTSECRET,
        callbackURL     : process.env.GOOGLE_CALLBACKURL,
        passReqToCallback: true,
    },
        function(req, token, refreshToken, profile, done) {


            process.nextTick(function() {

                // console.log(profile);

                var values = { 
                    where: { google_id: profile.id }, 
                    defaults: {google_id: profile.id, name: profile.displayName} 
                };

                User.findOrCreate(values)
                .spread(function(user, created) {
                    return done(null,user);
                });
            });
        }
    ));

И это мои маршруты:

app.get('/auth/google', 
    passport.authenticate('google', { scope : ['profile', 'email'] }));


// the callback after google has authenticated the user
app.get('/auth/google/callback',
        passport.authenticate('google', {
                successRedirect : '/portfolio/crypto',
                failureRedirect : '/'
        }));

И поскольку deserializeUser никогда не вызывается, req.user никогда не определяется.Как я могу это исправить?

...