diff --git a/src/routes/authentication.js b/src/routes/authentication.js index f69bf4e781..6aa8d540b6 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -40,89 +40,87 @@ }; Auth.createRoutes = function(app) { - app.namespace(nconf.get('relative_path'), function () { - app.post('/logout', function(req, res) { - if (req.user && parseInt(req.user.uid, 10) > 0) { - winston.info('[Auth] Session ' + req.sessionID + ' logout (uid: ' + req.user.uid + ')'); + app.post('/logout', function(req, res) { + if (req.user && parseInt(req.user.uid, 10) > 0) { + winston.info('[Auth] Session ' + req.sessionID + ' logout (uid: ' + req.user.uid + ')'); - var ws = require('../socket.io'); - ws.logoutUser(req.user.uid); + var ws = require('../socket.io'); + ws.logoutUser(req.user.uid); - req.logout(); - } - - res.send(200); - }); - - for (var i in login_strategies) { - if (login_strategies.hasOwnProperty(i)) { - var strategy = login_strategies[i]; - app.get(strategy.url, passport.authenticate(strategy.name, { - scope: strategy.scope - })); - - app.get(strategy.callbackURL, passport.authenticate(strategy.name, { - successRedirect: '/', - failureRedirect: '/login' - })); - } + req.logout(); } - app.post('/login', function(req, res, next) { - passport.authenticate('local', function(err, userData, info) { - if (err) { - return next(err); - } + res.send(200); + }); - if (!userData) { - return res.json(403, info); - } + for (var i in login_strategies) { + if (login_strategies.hasOwnProperty(i)) { + var strategy = login_strategies[i]; + app.get(strategy.url, passport.authenticate(strategy.name, { + scope: strategy.scope + })); - // Alter user cookie depending on passed-in option - if (req.body.remember === 'true') { - var duration = 1000*60*60*24*parseInt(meta.configs.loginDays || 14, 10); - req.session.cookie.maxAge = duration; - req.session.cookie.expires = new Date(Date.now() + duration); - } else { - req.session.cookie.maxAge = false; - req.session.cookie.expires = false; - } + app.get(strategy.callbackURL, passport.authenticate(strategy.name, { + successRedirect: '/', + failureRedirect: '/login' + })); + } + } - req.login({ - uid: userData.uid - }, function() { - if (userData.uid) { - user.logIP(userData.uid, req.ip); - } - - res.json(200, info); - }); - })(req, res, next); - }); - - app.post('/register', function(req, res) { - if(meta.config.allowRegistration !== undefined && parseInt(meta.config.allowRegistration, 10) === 0) { - return res.send(403); + app.post('/login', function(req, res, next) { + passport.authenticate('local', function(err, userData, info) { + if (err) { + return next(err); } - user.create({username: req.body.username, password: req.body.password, email: req.body.email, ip: req.ip}, function(err, uid) { - if (err === null && uid) { - req.login({ - uid: uid - }, function() { + if (!userData) { + return res.json(403, info); + } - require('../socket.io').emitUserCount(); + // Alter user cookie depending on passed-in option + if (req.body.remember === 'true') { + var duration = 1000*60*60*24*parseInt(meta.configs.loginDays || 14, 10); + req.session.cookie.maxAge = duration; + req.session.cookie.expires = new Date(Date.now() + duration); + } else { + req.session.cookie.maxAge = false; + req.session.cookie.expires = false; + } - if(req.body.referrer) { - res.redirect(req.body.referrer); - } else { - res.redirect(nconf.get('relative_path') + '/'); - } - }); - } else { - res.redirect(nconf.get('relative_path') + '/register'); + req.login({ + uid: userData.uid + }, function() { + if (userData.uid) { + user.logIP(userData.uid, req.ip); } + + res.json(200, info); }); + })(req, res, next); + }); + + app.post('/register', function(req, res) { + if(meta.config.allowRegistration !== undefined && parseInt(meta.config.allowRegistration, 10) === 0) { + return res.send(403); + } + + user.create({username: req.body.username, password: req.body.password, email: req.body.email, ip: req.ip}, function(err, uid) { + if (err === null && uid) { + req.login({ + uid: uid + }, function() { + + require('../socket.io').emitUserCount(); + + if(req.body.referrer) { + res.redirect(req.body.referrer); + } else { + res.redirect(nconf.get('relative_path') + '/'); + } + }); + } else { + res.redirect(nconf.get('relative_path') + '/register'); + } }); }); };