barisusakli 9 years ago
parent 07c1a822db
commit 37b1d3c8be

@ -1,20 +1,20 @@
"use strict"; "use strict";
var async = require('async'), var async = require('async');
winston = require('winston'), var winston = require('winston');
passport = require('passport'), var passport = require('passport');
nconf = require('nconf'), var nconf = require('nconf');
validator = require('validator'), var validator = require('validator');
_ = require('underscore'), var _ = require('underscore');
db = require('../database'), var db = require('../database');
meta = require('../meta'), var meta = require('../meta');
user = require('../user'), var user = require('../user');
plugins = require('../plugins'), var plugins = require('../plugins');
utils = require('../../public/src/utils'), var utils = require('../../public/src/utils');
Password = require('../password'), var Password = require('../password');
authenticationController = {}; var authenticationController = {};
authenticationController.register = function(req, res, next) { authenticationController.register = function(req, res, next) {
var registrationType = meta.config.registrationType || 'normal'; var registrationType = meta.config.registrationType || 'normal';
@ -86,8 +86,8 @@ function registerAndLoginUser(req, res, userData, callback) {
}, },
function(_uid, next) { function(_uid, next) {
uid = _uid; uid = _uid;
if (res.locals.processLogin === true) { if (res.locals.processLogin) {
doLogin(req, uid, next); authenticationController.doLogin(req, uid, next);
} else { } else {
next(); next();
} }
@ -171,7 +171,7 @@ function continueLogin(req, res, next) {
res.status(200).send(nconf.get('relative_path') + '/reset/' + code); res.status(200).send(nconf.get('relative_path') + '/reset/' + code);
}); });
} else { } else {
doLogin(req, userData.uid, function(err) { authenticationController.doLogin(req, userData.uid, function(err) {
if (err) { if (err) {
return res.status(403).send(err.message); return res.status(403).send(err.message);
} }
@ -189,39 +189,49 @@ function continueLogin(req, res, next) {
})(req, res, next); })(req, res, next);
} }
function doLogin(req, uid, callback) { authenticationController.doLogin = function(req, uid, callback) {
if (!uid) {
return callback();
}
req.login({uid: uid}, function(err) { req.login({uid: uid}, function(err) {
if (err) { if (err) {
return callback(err); return callback(err);
} }
if (uid) { var uuid = utils.generateUUID();
var uuid = utils.generateUUID(); req.session.meta = {};
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 // Associate IP used during login with user account
user.auth.addSession(uid, req.sessionID); user.logIP(uid, req.ip);
db.setObjectField('uid:' + uid + 'sessionUUID:sessionId', uuid, req.sessionID); req.session.meta.ip = req.ip;
plugins.fireHook('action:user.loggedIn', uid); // 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
});
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.localLogin = function(req, username, password, next) { authenticationController.localLogin = function(req, username, password, next) {
if (!username) { if (!username) {

Loading…
Cancel
Save