2014-10-06 16 views
11

Tôi có đoạn code Node dưới, sử dụng hộ chiếu-google-oauth ...Hộ chiếu được Google OAuth Callback Không làm việc

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' 
    }); 
}); 

và ...

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); 
})); 

Vấn đề là, khi gọi lại được gọi nhưng không có gì khác xảy ra. Chức năng xử lý không bao giờ chạm. Cuộc gọi lại kết thúc thời gian chờ. Bất kỳ ý tưởng mà tôi đã đi sai?

+0

Dòng 'console.log ("callback"); 'được thực hiện? – xShirase

+0

Ngoài ra, bạn/tuyến đăng nhập trông như thế nào? Cũng nên gọi lại là một nhận được hoặc đăng bài. Tôi nghĩ đó thường là một bài đăng. –

+0

có thể sự cố của bạn nằm trong GoogleStrategy. Hãy thử điều này: var GoogleStrategy = require ('passport-google-oauth'). OAuth2Chiến lược; – Dyrk

Trả lời

1

tôi chỉ phát hiện ra rằng gói hộ chiếu-google-oauth xuất khẩu như sau:

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

điều đó có nghĩa, rằng "mặc định" (. Tức là Chiến lược) không OAuth2 ở tất cả ... Vì vậy, bạn tốt hơn sử dụng OAuth2Chiến lược một cách rõ ràng. nó làm việc cho tôi. Mất nhiều giờ để tìm hiểu đây là vấn đề ...

Các vấn đề liên quan