From 9aa923e90ee9cde5def3c8aec7c58b9a52d4b50e Mon Sep 17 00:00:00 2001 From: Precious Jahlom Agboado Date: Tue, 4 Mar 2014 10:37:19 +0000 Subject: [PATCH 1/4] Added a redirection to referrer page --- controllers/user.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/controllers/user.js b/controllers/user.js index 97bbb5ec30..c707209130 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -9,6 +9,15 @@ var User = require('../models/User'); exports.getLogin = function(req, res) { if (req.user) return res.redirect('/'); + + // If the host in the header of the User Agent making the request is + // the same as the server host, keep a copy of the referrer url and + // redirect to that later + if(req.header('host') == 'localhost:3000'){ + req.session.referrer = req.header('Referrer'); + console.log(req.session.referrer); + } + res.render('account/login', { title: 'Login' }); @@ -43,7 +52,9 @@ exports.postLogin = function(req, res, next) { req.logIn(user, function(err) { if (err) return next(err); req.flash('success', { msg: 'Success! You are logged in.' }); - return res.redirect('/'); + // redirecting toa referrer page else to home page + if(req.session.referrer) return res.redirect(req.session.referrer); + return res.redirect('/') }); })(req, res, next); }; From 7fe8b678068b42cbab4134850a0ec9e601558a42 Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Wed, 5 Mar 2014 14:35:38 -0500 Subject: [PATCH 2/4] Removed TODO section --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index e28e4df0e8..d7f90f662e 100644 --- a/README.md +++ b/README.md @@ -1009,10 +1009,6 @@ Add this to `package.json`, after *name* and *version*. This is necessary becaus - **Note:** *You will be prompted for the password you created earlier* - On **Deployments** tab of your Windows Azure Web Site, you will see the deployment history -TODO ----- -- Pages that require login, should automatically redirect to last attempted URL on successful sign-in. - Contributing ------------ If something is unclear, confusing, or needs to be refactored, please let me know. Pull requests are always welcome, but due to the opinionated nature of this project, I cannot accept every pull request. Please open an issue before submitting a pull request. This project uses [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript) with a few minor exceptions. If you are submitting a pull request that involves Jade templates, please make sure you are using *spaces*, not tabs. From 10c7f283e9a7380f0e8318bb60d311f6b2e98f71 Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Wed, 5 Mar 2014 14:50:08 -0500 Subject: [PATCH 3/4] Code refactoring of redirect to last URL --- controllers/user.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/controllers/user.js b/controllers/user.js index c707209130..b7820cabd8 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -9,15 +9,7 @@ var User = require('../models/User'); exports.getLogin = function(req, res) { if (req.user) return res.redirect('/'); - - // If the host in the header of the User Agent making the request is - // the same as the server host, keep a copy of the referrer url and - // redirect to that later - if(req.header('host') == 'localhost:3000'){ - req.session.referrer = req.header('Referrer'); - console.log(req.session.referrer); - } - + req.session.lastUrl = req.header('Referer'); res.render('account/login', { title: 'Login' }); @@ -43,18 +35,14 @@ exports.postLogin = function(req, res, next) { passport.authenticate('local', function(err, user, info) { if (err) return next(err); - if (!user) { req.flash('errors', { msg: info.message }); return res.redirect('/login'); } - req.logIn(user, function(err) { if (err) return next(err); req.flash('success', { msg: 'Success! You are logged in.' }); - // redirecting toa referrer page else to home page - if(req.session.referrer) return res.redirect(req.session.referrer); - return res.redirect('/') + res.redirect(req.session.lastUrl || '/'); }); })(req, res, next); }; From 32eb2065e067ac3b6ba31c6fc65f1ea47c01b327 Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Wed, 5 Mar 2014 15:06:17 -0500 Subject: [PATCH 4/4] Renamed Referer to Referrer --- controllers/user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/user.js b/controllers/user.js index b7820cabd8..0d6c53b816 100644 --- a/controllers/user.js +++ b/controllers/user.js @@ -9,7 +9,7 @@ var User = require('../models/User'); exports.getLogin = function(req, res) { if (req.user) return res.redirect('/'); - req.session.lastUrl = req.header('Referer'); + req.session.lastUrl = req.header('Referrer'); res.render('account/login', { title: 'Login' });