Passport-Google-OAuth回拨不起作用

我有以下节点代码使用passport-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); })); 

问题是,callback被调用,但没有其他事情发生。 处理function从未命中。 callback结束超时。 任何想法,我出错了?

我刚刚发现passport-google-oauth包出口以下内容:

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

这意味着,“默认”(即策略)根本不oauth2 …所以你最好明确使用OAuth2Strategy。 它为我工作。 花了我几个小时才发现这是个问题