我有以下Node代码使用护照-a-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); }));
解决方法
我刚刚发现护照google-oauth包出口如下:
exports.Strategy = exports.OAuthStrategy = OAuthStrategy; exports.OAuth2Strategy = OAuth2Strategy;
这意味着,“默认”(即策略)根本不是oauth2 …所以你最好明确地使用OAuth2Strategy.它为我工作.花了我几个小时才发现这是问题…