aboutsummaryrefslogtreecommitdiff
path: root/routes
diff options
context:
space:
mode:
Diffstat (limited to 'routes')
-rw-r--r--routes/index.js17
-rw-r--r--routes/user.js13
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);
}
-
-
-
-
});