Squashed commit of the following:

commit 23de0708708ed190eafbcd6ea93d43333cb87aa3
Author: Julian Lam <julian@designcreateplay.com>
Date:   Wed Dec 23 10:48:16 2015 -0500

    wired up session revocation, #3989

commit 45a3f18321b74a9b6893d404b6c870f1ec4d95cd
Author: Julian Lam <julian@designcreateplay.com>
Date:   Wed Dec 23 09:49:27 2015 -0500

    session deletion via session uuid

commit 2bf87338cf9bfa2df0b299639421d8da7553c69a
Author: Julian Lam <julian@designcreateplay.com>
Date:   Tue Dec 22 13:53:35 2015 -0500

    WIP #3989

commit 623f45c3fa8b96f8b6eec0613eb7f9463348ab93
Author: Julian Lam <julian@designcreateplay.com>
Date:   Tue Dec 22 10:22:24 2015 -0500

    saving more metadata and displaying sessions in UCP #3989

commit d0567ed7cc33a1aea66e921b657f782038f32191
Author: Julian Lam <julian@designcreateplay.com>
Date:   Tue Dec 22 10:21:38 2015 -0500

    updated fontawesome to v4.5.0

commit 7131c97fe8ab42838eb2915a04e74f80f3d9a133
Author: Julian Lam <julian@designcreateplay.com>
Date:   Tue Dec 22 09:39:16 2015 -0500

    saving user-agent metadata into user session #3989

commit 661b7e6dba774b80b5dc6d04f89a79f809ff791e
Author: Julian Lam <julian@designcreateplay.com>
Date:   Tue Dec 22 09:23:24 2015 -0500

    New user auth methods to add/revoke sessions, #3989
This commit is contained in:
Julian Lam
2015-12-23 10:48:45 -05:00
parent d9125c215c
commit ad9a1d0f2c
21 changed files with 320 additions and 34 deletions

View File

@@ -5,6 +5,7 @@ var async = require('async'),
passport = require('passport'),
nconf = require('nconf'),
validator = require('validator'),
_ = require('underscore'),
db = require('../database'),
meta = require('../meta'),
@@ -176,8 +177,27 @@ function continueLogin(req, res, next) {
if (err) {
return res.status(403).send(err.message);
}
if (userData.uid) {
var uuid = utils.generateUUID();
req.session.meta = {};
// Associate IP used during login with user account
user.logIP(userData.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
user.auth.addSession(userData.uid, req.sessionID);
db.setObjectField('sessionUUID:sessionId', uuid, req.sessionID);
plugins.fireHook('action:user.loggedIn', userData.uid);
}
@@ -254,7 +274,7 @@ authenticationController.localLogin = function(req, username, password, next) {
authenticationController.logout = function(req, res, next) {
if (req.user && parseInt(req.user.uid, 10) > 0 && req.sessionID) {
var uid = parseInt(req.user.uid, 10);
db.sessionStore.destroy(req.sessionID, function(err) {
user.auth.revokeSession(req.sessionID, uid, function(err) {
if (err) {
return next(err);
}