From fa1171fe280496fa97a6a8eed1027776922e5c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20Cob=C3=A1?= Date: Tue, 8 Apr 2014 10:38:56 -0500 Subject: [PATCH 1/2] Add envvars for deploying to cloud providers --- config/env/all.js | 10 +++++++--- config/env/development.js | 26 +++++++++++++------------- config/env/production.js | 26 +++++++++++++------------- config/env/test.js | 26 +++++++++++++------------- config/strategies/facebook.js | 5 +++-- config/strategies/google.js | 5 +++-- config/strategies/linkedin.js | 5 +++-- config/strategies/twitter.js | 5 +++-- 8 files changed, 58 insertions(+), 50 deletions(-) diff --git a/config/env/all.js b/config/env/all.js index 46815116..3c2ee415 100644 --- a/config/env/all.js +++ b/config/env/all.js @@ -3,6 +3,9 @@ var path = require('path'), rootPath = path.normalize(__dirname + '/../..'); +var port = process.env.PORT || 3000; +var appUrl = process.env.APP_URL || ('http://localhost:' + port); + module.exports = { app: { title: 'MEAN.JS', @@ -10,8 +13,9 @@ module.exports = { keywords: 'mongodb, express, angularjs, node.js, mongoose, passport' }, root: rootPath, - port: process.env.PORT || 3000, + port: port, + appUrl: appUrl, templateEngine: 'swig', - sessionSecret: 'MEAN', + sessionSecret: process.env.SESSION_SECRET || 'MEAN', sessionCollection: 'sessions' -}; \ No newline at end of file +}; diff --git a/config/env/development.js b/config/env/development.js index dc583724..43dc47d0 100644 --- a/config/env/development.js +++ b/config/env/development.js @@ -6,23 +6,23 @@ module.exports = { title: 'MEAN.JS - Development Environment' }, facebook: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/facebook/callback' + clientID: process.env.FACEBOOK_ID || 'APP_ID', + clientSecret: process.env.FACEBOOK_SECRET || 'APP_SECRET', + callbackPath: '/auth/facebook/callback' }, twitter: { - clientID: 'CONSUMER_KEY', - clientSecret: 'CONSUMER_SECRET', - callbackURL: 'http://localhost:3000/auth/twitter/callback' + clientID: process.env.TWITTER_KEY || 'CONSUMER_KEY', + clientSecret: process.env.TWITTER_SECRET || 'CONSUMER_SECRET', + callbackPath: '/auth/twitter/callback' }, google: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/google/callback' + clientID: process.env.GOOGLE_ID || 'APP_ID', + clientSecret: process.env.GOOGLE_SECRET || 'APP_SECRET', + callbackPath: '/auth/google/callback' }, linkedin: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/linkedin/callback' + clientID: process.env.LINKEDIN_ID || 'APP_ID', + clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET', + callbackPath: '/auth/linkedin/callback' } -}; \ No newline at end of file +}; diff --git a/config/env/production.js b/config/env/production.js index 32f970d6..28af7994 100644 --- a/config/env/production.js +++ b/config/env/production.js @@ -3,23 +3,23 @@ module.exports = { db: process.env.MONGOHQ_URL || process.env.MONGOLAB_URI || 'mongodb://localhost/mean', facebook: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/facebook/callback' + clientID: process.env.FACEBOOK_ID || 'APP_ID', + clientSecret: process.env.FACEBOOK_SECRET || 'APP_SECRET', + callbackPath: '/auth/facebook/callback' }, twitter: { - clientID: 'CONSUMER_KEY', - clientSecret: 'CONSUMER_SECRET', - callbackURL: 'http://localhost:3000/auth/twitter/callback' + clientID: process.env.TWITTER_KEY || 'CONSUMER_KEY', + clientSecret: process.env.TWITTER_SECRET || 'CONSUMER_SECRET', + callbackPath: '/auth/twitter/callback' }, google: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/google/callback' + clientID: process.env.GOOGLE_ID || 'APP_ID', + clientSecret: process.env.GOOGLE_SECRET || 'APP_SECRET', + callbackPath: '/auth/google/callback' }, linkedin: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/linkedin/callback' + clientID: process.env.LINKEDIN_ID || 'APP_ID', + clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET', + callbackPath: '/auth/linkedin/callback' } -}; \ No newline at end of file +}; diff --git a/config/env/test.js b/config/env/test.js index a5a01a29..a0f72fcb 100644 --- a/config/env/test.js +++ b/config/env/test.js @@ -7,23 +7,23 @@ module.exports = { title: 'MEAN.JS - Test Environment' }, facebook: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/facebook/callback' + clientID: process.env.FACEBOOK_ID || 'APP_ID', + clientSecret: process.env.FACEBOOK_SECRET || 'APP_SECRET', + callbackPath: '/auth/facebook/callback' }, twitter: { - clientID: 'CONSUMER_KEY', - clientSecret: 'CONSUMER_SECRET', - callbackURL: 'http://localhost:3000/auth/twitter/callback' + clientID: process.env.TWITTER_KEY || 'CONSUMER_KEY', + clientSecret: process.env.TWITTER_SECRET || 'CONSUMER_SECRET', + callbackPath: '/auth/twitter/callback' }, google: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/google/callback' + clientID: process.env.GOOGLE_ID || 'APP_ID', + clientSecret: process.env.GOOGLE_SECRET || 'APP_SECRET', + callbackPath: '/auth/google/callback' }, linkedin: { - clientID: 'APP_ID', - clientSecret: 'APP_SECRET', - callbackURL: 'http://localhost:3000/auth/linkedin/callback' + clientID: process.env.LINKEDIN_ID || 'APP_ID', + clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET', + callbackPath: '/auth/linkedin/callback' } -}; \ No newline at end of file +}; diff --git a/config/strategies/facebook.js b/config/strategies/facebook.js index 4802a46f..cb3deaf7 100644 --- a/config/strategies/facebook.js +++ b/config/strategies/facebook.js @@ -1,6 +1,7 @@ 'use strict'; var passport = require('passport'), + url = require('url'), FacebookStrategy = require('passport-facebook').Strategy, User = require('mongoose').model('User'), config = require('../config'); @@ -10,7 +11,7 @@ module.exports = function() { passport.use(new FacebookStrategy({ clientID: config.facebook.clientID, clientSecret: config.facebook.clientSecret, - callbackURL: config.facebook.callbackURL, + callbackURL: url.resolve(config.appUrl, config.facebook.callbackPath), passReqToCallback: true }, function(req, accessToken, refreshToken, profile, done) { @@ -46,4 +47,4 @@ module.exports = function() { } } )); -}; \ No newline at end of file +}; diff --git a/config/strategies/google.js b/config/strategies/google.js index d86e0255..28409e23 100644 --- a/config/strategies/google.js +++ b/config/strategies/google.js @@ -1,6 +1,7 @@ 'use strict'; var passport = require('passport'), + url = require('url'), GoogleStrategy = require('passport-google-oauth').OAuth2Strategy, User = require('mongoose').model('User'), config = require('../config'); @@ -10,7 +11,7 @@ module.exports = function() { passport.use(new GoogleStrategy({ clientID: config.google.clientID, clientSecret: config.google.clientSecret, - callbackURL: config.google.callbackURL, + callbackURL: url.resolve(config.appUrl, config.google.callbackPath), passReqToCallback: true }, function(req, accessToken, refreshToken, profile, done) { @@ -45,4 +46,4 @@ module.exports = function() { } } )); -}; \ No newline at end of file +}; diff --git a/config/strategies/linkedin.js b/config/strategies/linkedin.js index cbb460a6..cd9c71b2 100644 --- a/config/strategies/linkedin.js +++ b/config/strategies/linkedin.js @@ -1,6 +1,7 @@ 'use strict'; var passport = require('passport'), + url = require('url'), LinkedInStrategy = require('passport-linkedin').Strategy, User = require('mongoose').model('User'), config = require('../config'); @@ -10,7 +11,7 @@ module.exports = function() { passport.use(new LinkedInStrategy({ consumerKey: config.linkedin.clientID, consumerSecret: config.linkedin.clientSecret, - callbackURL: config.linkedin.callbackURL, + callbackURL: url.resolve(config.appUrl, config.linkedin.callbackPath), passReqToCallback: true, profileFields: ['id', 'first-name', 'last-name', 'email-address'] }, @@ -46,4 +47,4 @@ module.exports = function() { } } )); -}; \ No newline at end of file +}; diff --git a/config/strategies/twitter.js b/config/strategies/twitter.js index 62301d44..fafba85a 100644 --- a/config/strategies/twitter.js +++ b/config/strategies/twitter.js @@ -1,6 +1,7 @@ 'use strict'; var passport = require('passport'), + url = require('url'), TwitterStrategy = require('passport-twitter').Strategy, User = require('mongoose').model('User'), config = require('../config'); @@ -10,7 +11,7 @@ module.exports = function() { passport.use(new TwitterStrategy({ consumerKey: config.twitter.clientID, consumerSecret: config.twitter.clientSecret, - callbackURL: config.twitter.callbackURL, + callbackURL: url.resolve(config.appUrl, config.twitter.callbackPath), passReqToCallback: true }, function(req, token, tokenSecret, profile, done) { @@ -43,4 +44,4 @@ module.exports = function() { } } )); -}; \ No newline at end of file +}; From ff4ae8bacce6748cb05792a26b656284f8d525b6 Mon Sep 17 00:00:00 2001 From: David Morris Date: Tue, 15 Apr 2014 23:15:35 -0500 Subject: [PATCH 2/2] workaround for express 4 connectMongo session bug --- config/express.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/express.js b/config/express.js index 99c01e91..3901582f 100755 --- a/config/express.js +++ b/config/express.js @@ -11,7 +11,7 @@ var express = require('express'), methodOverride = require('method-override'), cookieParser = require('cookie-parser'), passport = require('passport'), - mongoStore = require('connect-mongo')(session), + mongoStore = require('connect-mongo')({session: session}), flash = require('connect-flash'), config = require('./config'), consolidate = require('consolidate'),