diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 931dbe2a3c..a6c9ef3288 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -199,37 +199,42 @@ authenticationController.doLogin = function(req, uid, callback) { return callback(err); } - var uuid = utils.generateUUID(); - req.session.meta = {}; - - // Associate IP used during login with user account - user.logIP(uid, req.ip); - req.session.meta.ip = req.ip; - - // Associate metadata retrieved via user-agent - req.session.meta = _.extend(req.session.meta, { - uuid: uuid, - datetime: Date.now(), - platform: req.useragent.platform, - browser: req.useragent.browser, - version: req.useragent.version - }); + authenticationController.onSuccessfulLogin(req, uid, callback); + }); +}; - // Associate login session with user - async.parallel([ - function (next) { - user.auth.addSession(uid, req.sessionID, next); - }, - function (next) { - db.setObjectField('uid:' + uid + 'sessionUUID:sessionId', uuid, req.sessionID, next); - } - ], function(err) { - if (err) { - return callback(err); - } - plugins.fireHook('action:user.loggedIn', uid); - callback(); - }); +authenticationController.onSuccessfulLogin = function(req, uid, callback) { + callback = callback || function() {}; + var uuid = utils.generateUUID(); + req.session.meta = {}; + + // Associate IP used during login with user account + user.logIP(uid, req.ip); + req.session.meta.ip = req.ip; + + // Associate metadata retrieved via user-agent + req.session.meta = _.extend(req.session.meta, { + uuid: uuid, + datetime: Date.now(), + platform: req.useragent.platform, + browser: req.useragent.browser, + version: req.useragent.version + }); + + // Associate login session with user + async.parallel([ + function (next) { + user.auth.addSession(uid, req.sessionID, next); + }, + function (next) { + db.setObjectField('uid:' + uid + 'sessionUUID:sessionId', uuid, req.sessionID, next); + } + ], function(err) { + if (err) { + return callback(err); + } + plugins.fireHook('action:user.loggedIn', uid); + callback(); }); };