Passport js page にあるコード サンプルに従います。
app.get('/fbconnect', function (req, res) {
var loadingMessage = "Connecting to Facebook. Please Wait";
res.render('index', { title : 'Home', message : DEFAULT_MESSAGE, loadingMessage : loadingMessage, loadingDivDisplay : "block"}, function(err, html) {
if (!err) {
passport.authenticate('facebook', { scope : ['email', 'publish_actions'] })(req, res);
}
});
});
app.get('/auth/facebook/callback', function (req, res) {
var loadingMessage = "Processing the request. Please wait",
isAuthenticationError = false;
if(req.query && req.query.error){
req.session.authError = req.query.error;
req.session.authErrorReason = req.query.error_reason;
isAuthenticationError = true;
}
res.render('index', { title : 'Home', message : DEFAULT_MESSAGE, loadingMessage : loadingMessage, loadingDivDisplay : "block"}, function(err, html){
if (isAuthenticationError === true) {
res.redirect('/');
} else {
console.log("into right place");
passport.authenticate('facebook', { successRedirect: '/authorisationComplete'})(req, res);
}
});
});
しかし、私は自分のサーバーの問題に直面しています。これには時間がかかり、認証後にゲートウェイのタイムアウトの問題が表示されます。
FB からの認証後、すぐにサーバーからメッセージ (「リクエストを処理しています。お待ちください」など) を表示しようとしていますが、ゲートウェイのタイムアウトに達するまでに 2 分かかります。
しかし失敗。誰かがこれを手伝ってくれますか