diff options
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/index.js | 17 | ||||
| -rw-r--r-- | routes/user.js | 13 |
2 files changed, 23 insertions, 7 deletions
diff --git a/routes/index.js b/routes/index.js index 75f93c0..16f2420 100644 --- a/routes/index.js +++ b/routes/index.js @@ -7,6 +7,7 @@ router.use(csrfProtection); // router is protected // Remove later var passport_file = require('../config/passport.js'); var bcrypt = require('bcrypt-nodejs'); +var passport = require('passport'); /* Render/GET homepage. */ router.get('/', function(req, res, next) { @@ -257,6 +258,22 @@ router.get('/solutions/:exam_id/:q_num', function (req, res) { }); }); +// Redirect the user to Facebook for authentication. When complete, +// Facebook will redirect the user back to the application at +// /auth/facebook/callback +router.get('/auth/facebook', passport.authenticate('facebook')); + +// Facebook will redirect the user to this URL after approval. Finish the +// authentication process by attempting to obtain an access token. If +// access was granted, the user will be logged in. Otherwise, +// authentication has failed. +router.get('/auth/facebook/callback', + passport.authenticate('facebook', { + successRedirect: '/user/user_profile', + failureRedirect: '/user/logout' })); + + + /**** Helpers ****/ function addFirstAdmin() { diff --git a/routes/user.js b/routes/user.js index e69a2c9..cfa3a79 100644 --- a/routes/user.js +++ b/routes/user.js @@ -20,7 +20,6 @@ router.get('/logout', loggedIn, function (req, res, next) { router.get('/user_profile', loggedIn, isUser, function(req, res, next) { req.session.messages = null; - var comments = []; var inbox = []; var error = null; @@ -182,6 +181,9 @@ router.get('/signin', loggedOut, function (req, res, next) { }); }); +router.get('/verify', function(req, res, next) { + res.render('verification', {noHeader: true}); +}); router.post('/signup', loggedOut, function(req, res, next) { req.assert('fname', 'Please enter a valid first name.').notEmpty().withMessage('First name required.').isAlpha(); req.check('lname', 'Please enter a valid first name.').notEmpty().withMessage('Last name required.').isAlpha(); @@ -204,7 +206,7 @@ router.post('/signup', loggedOut, function(req, res, next) { } else { console.log("GOT SUCCESS"); passport.authenticate('local_signup', { - successRedirect: '/user/user_profile', + successRedirect: '/user/verify', failureRedirect: '/user/signup/failed', failureFlash: true })(req, res); @@ -223,7 +225,7 @@ router.post('/signin', loggedOut, function(req, res, next) { res.redirect('/signin'); } else { passport.authenticate('local_signin', { - successRedirect: '/user/user_profile', + successRedirect: '/user/verify', failureRedirect: '/user/signin', failureFlash: true })(req, res); @@ -232,6 +234,7 @@ router.post('/signin', loggedOut, function(req, res, next) { }); + router.post('/user_profile/send_message', loggedIn, function(req, res, next) { if (req.user.user_name === req.body.receiver_username) { req.session.messages = {error : 'You cannot send a message to yourself.'}; @@ -374,10 +377,6 @@ router.post('/solution/vote/:examID/:qID/:solID', function(req, res, next){ res.redirect('/solutions/' + examID + '/' + qID); } - - - - }); |
