Обратный вызов 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 явно. это сработало для меня. Взял у меня часы, чтобы узнать, что это была проблема...