Node.js アプリケーションで Google 認証を行うためにPassportを使用しています。Heroku でホストしています。私が直面している問題は、nodejs コードで指定した成功コールバックに戻らないことです。Succesfuly logged in
ログインが成功するとメッセージが表示されると思います。Heroku のログを確認すると、「リクエストのタイムアウト」が表示されます
これが私のNode.jsコードです
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
var hbs = require('hbs');
var passport = require('passport')
, GoogleStrategy = require('passport-google').Strategy;
passport.use(new GoogleStrategy({
returnURL: 'http://floating-citadel-4714.herokuapp.com/auth/google/return',
realm: 'http://floating-citadel-4714.herokuapp.com'
},
function(identifier, profile, done){
console.log('Success');
console.log(identifier);
console.log(profile);
}
));
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'html');
app.engine('html',hbs.__express);
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/auth',function(req,resp){
resp.sendfile('./views/auth.html');
});
app.get('/auth/google',passport.authenticate('google'));
app.get('/auth/google/return',
passport.authenticate('google', { successRedirect: '/success',
failureRedirect: '/error' }));
app.get('/success',function(req,resp){
resp.send('Succesfuly logged in');
});
app.get('/error',function(req,resp){
resp.send('Error Loging in');
});
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});