fix FCC running using router syntax

This commit is contained in:
Berkeley Martinez
2015-06-01 17:01:54 -07:00
parent 7bb11e9fbe
commit 7643f1cabe
7 changed files with 84 additions and 78 deletions

View File

@ -9,7 +9,7 @@ var gulp = require('gulp'),
eslint = require('gulp-eslint'); eslint = require('gulp-eslint');
var paths = { var paths = {
server: './server.js', server: './server/server.js',
serverIgnore: [] serverIgnore: []
}; };

View File

@ -10,7 +10,7 @@
"npm": "2.3.0" "npm": "2.3.0"
}, },
"scripts": { "scripts": {
"start": "node app.js", "start": "node server/server.js",
"lint": "eslint --ext=.js,.jsx .", "lint": "eslint --ext=.js,.jsx .",
"test": "mocha" "test": "mocha"
}, },

68
server/boot/passport.js Normal file
View File

@ -0,0 +1,68 @@
var express = require('express'),
passport = require('passport'),
passportConf = require('../../config/passport');
var router = express.Router();
var passportOptions = {
successRedirect: '/',
failureRedirect: '/login'
};
router.all('/account', passportConf.isAuthenticated);
router.get('/auth/twitter', passport.authenticate('twitter'));
router.get(
'/auth/twitter/callback',
passport.authenticate('twitter', {
successRedirect: '/',
failureRedirect: '/login'
})
);
router.get(
'/auth/linkedin',
passport.authenticate('linkedin', {
state: 'SOME STATE'
})
);
router.get(
'/auth/linkedin/callback',
passport.authenticate('linkedin', passportOptions)
);
router.get(
'/auth/facebook',
passport.authenticate('facebook', {scope: ['email', 'user_location']})
);
router.get(
'/auth/facebook/callback',
passport.authenticate('facebook', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
router.get('/auth/github', passport.authenticate('github'));
router.get(
'/auth/github/callback',
passport.authenticate('github', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
router.get(
'/auth/google',
passport.authenticate('google', {scope: 'profile email'})
);
router.get(
'/auth/google/callback',
passport.authenticate('google', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
module.exports = router;

View File

@ -1,16 +1,18 @@
var _ = require('lodash'), var _ = require('lodash'),
R = require('ramda'),
async = require('async'), async = require('async'),
crypto = require('crypto'), crypto = require('crypto'),
nodemailer = require('nodemailer'), nodemailer = require('nodemailer'),
passport = require('passport'), passport = require('passport'),
moment = require('moment'),
express = require('express'),
debug = require('debug')('freecc:cntr:userController'),
User = require('../../models/User'), User = require('../../models/User'),
secrets = require('../../config/secrets'), secrets = require('../../config/secrets'),
moment = require('moment'), resources = require('./../resources/resources');
debug = require('debug')('freecc:cntr:userController'),
resources = require('./../resources/resources'),
R = require('ramda');
var router = express.Router();
router.get('/login', function(req, res) { router.get('/login', function(req, res) {
res.redirect(301, '/signin'); res.redirect(301, '/signin');
}); });

View File

@ -5,7 +5,7 @@ var express = require('express'),
Slack = require('node-slack'), Slack = require('node-slack'),
request = require('request'), request = require('request'),
debug = require('debug')('freecc:cntr:resources'), debug = require('debug')('freecc:cntr:resources'),
constantStrings = require('./constantStrings.json'), constantStrings = require('../resources/constantStrings.json'),
User = require('../../models/User'), User = require('../../models/User'),
Challenge = require('./../../models/Challenge'), Challenge = require('./../../models/Challenge'),

View File

@ -41,12 +41,12 @@ Array.zip = function(left, right, combinerFunction) {
if (!challengeMap) { if (!challengeMap) {
var localChallengeMap = {}; var localChallengeMap = {};
var files = fs.readdirSync( var files = fs.readdirSync(
path.join(__dirname, '/../seed_data/challenges') path.join(__dirname, '../../seed_data/challenges')
); );
var keyCounter = 0; var keyCounter = 0;
files = files.map(function (file) { files = files.map(function (file) {
return require( return require(
path.join(__dirname, '/../seed_data/challenges/' + file) path.join(__dirname, '../../seed_data/challenges/' + file)
); );
}); });
files = files.sort(function (a, b) { files = files.sort(function (a, b) {

View File

@ -33,7 +33,6 @@ var express = require('express'),
* routers. * routers.
*/ */
homeRouter = require('./boot/home'), homeRouter = require('./boot/home'),
resourcesRouter = require('./resources/resources'),
userRouter = require('./boot/user'), userRouter = require('./boot/user'),
fieldGuideRouter = require('./boot/fieldGuide'), fieldGuideRouter = require('./boot/fieldGuide'),
challengeMapRouter = require('./boot/challengeMap'), challengeMapRouter = require('./boot/challengeMap'),
@ -42,12 +41,12 @@ var express = require('express'),
redirectsRouter = require('./boot/redirects'), redirectsRouter = require('./boot/redirects'),
utilityRouter = require('./boot/utility'), utilityRouter = require('./boot/utility'),
storyRouter = require('./boot/story'), storyRouter = require('./boot/story'),
passportRouter = require('./boot/passport'),
/** /**
* API keys and Passport configuration. * API keys and Passport configuration.
*/ */
secrets = require('./../config/secrets'), secrets = require('./../config/secrets');
passportConf = require('./../config/passport');
/** /**
* Create Express server. * Create Express server.
@ -199,7 +198,7 @@ app.use(function (req, res, next) {
}); });
app.use( app.use(
express.static(path.join(__dirname, '/public'), { maxAge: 86400000 }) express.static(path.join(__dirname, '../public'), { maxAge: 86400000 })
); );
app.use(function (req, res, next) { app.use(function (req, res, next) {
@ -216,7 +215,6 @@ app.use(function (req, res, next) {
// add sub routers // add sub routers
app.use(homeRouter); app.use(homeRouter);
app.use(resourcesRouter);
app.use(userRouter); app.use(userRouter);
app.use(fieldGuideRouter); app.use(fieldGuideRouter);
app.use(challengeMapRouter); app.use(challengeMapRouter);
@ -225,74 +223,12 @@ app.use(jobsRouter);
app.use(redirectsRouter); app.use(redirectsRouter);
app.use(utilityRouter); app.use(utilityRouter);
app.use(storyRouter); app.use(storyRouter);
app.use(passportRouter);
/** /**
* OAuth sign-in routes. * OAuth sign-in routes.
*/ */
app.all('/account', passportConf.isAuthenticated);
var passportOptions = {
successRedirect: '/',
failureRedirect: '/login'
};
app.get('/auth/twitter', passport.authenticate('twitter'));
app.get(
'/auth/twitter/callback',
passport.authenticate('twitter', {
successRedirect: '/',
failureRedirect: '/login'
})
);
app.get(
'/auth/linkedin',
passport.authenticate('linkedin', {
state: 'SOME STATE'
})
);
app.get(
'/auth/linkedin/callback',
passport.authenticate('linkedin', passportOptions)
);
app.get(
'/auth/facebook',
passport.authenticate('facebook', {scope: ['email', 'user_location']})
);
app.get(
'/auth/facebook/callback',
passport.authenticate('facebook', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
app.get('/auth/github', passport.authenticate('github'));
app.get(
'/auth/github/callback',
passport.authenticate('github', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
app.get(
'/auth/google',
passport.authenticate('google', {scope: 'profile email'})
);
app.get(
'/auth/google/callback',
passport.authenticate('google', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
/** /**
* 500 Error Handler. * 500 Error Handler.
*/ */