mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-31 19:15:58 +01:00
closes #3989
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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user