Обратный вызов Passport-Google-OAuth Не работает

У меня есть следующий код Node, используя паспорт-google-oauth...

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

app.get('/auth/google/callback', function(req,res) {
    console.log("callback");
    passport.authenticate('google', {
                successRedirect : '/signin',
                failureRedirect : '/signin'
    });
});

и...

passport.serializeUser(function(user, done) {
    console.log("ser");
    done(null, user.id);
});

passport.deserializeUser(function(id, done) {
    console.log("des");
    User.findById(id, function(err, user) {
        done(err, user);
    });
});

passport.use(new GoogleStrategy({

    clientID        : 'id',
    clientSecret    : 'key',
    callbackURL     : 'http://host/auth/google/callback',
},
function(token, rtoken, profile, done) {
   console.log("proc");
   console.log(profile);
   done(null, profile);
}));

Проблема заключается в том, что вызов вызывает вызов, но ничего больше не происходит. Функция обработки никогда не попадает. Обратный вызов заканчивается тайм-аутом. Любые идеи, в которых я ошибся?

Ответ 1

я только узнал, что пакет паспорт-google-oauth экспортирует следующее:

exports.Strategy =
exports.OAuthStrategy = OAuthStrategy;
exports.OAuth2Strategy = OAuth2Strategy;

что означает, что "default" (т.е. стратегия) не является oauth2 вообще... Так что вы лучше используете OAuth2Strategy явно. это сработало для меня. Взял у меня часы, чтобы узнать, что это была проблема...