freeCodeCamp/api-server/server/middlewares/add-return-to.js

38 lines
808 B
JavaScript
Raw Normal View History

2015-08-18 22:22:28 +00:00
const pathsOfNoReturn = [
'link',
'auth',
'login',
'logout',
'signin',
'signup',
'fonts',
'favicon',
'js',
'css'
];
const pathsWhiteList = ['challenges', 'map', 'commit'];
2015-09-23 21:54:08 +00:00
2015-08-18 22:22:28 +00:00
const pathsOfNoReturnRegex = new RegExp(pathsOfNoReturn.join('|'), 'i');
2015-09-23 21:54:08 +00:00
const whiteListRegex = new RegExp(pathsWhiteList.join('|'), 'i');
2015-08-18 22:22:28 +00:00
export default function addReturnToUrl() {
return function(req, res, next) {
// Remember original destination before login.
var path = req.path.split('/')[1];
2015-08-18 22:22:28 +00:00
2015-09-23 21:54:08 +00:00
if (
req.method !== 'GET' ||
pathsOfNoReturnRegex.test(path) ||
!whiteListRegex.test(path) ||
(/hot/i).test(req.path)
2015-09-23 21:54:08 +00:00
) {
return next();
}
req.session.returnTo = req.originalUrl.includes('/map')
? '/'
: req.originalUrl;
2016-03-03 04:54:14 +00:00
return next();
};
}