store user sessionId mapping per user

v1.18.x
barisusakli 9 years ago
parent b7e492363c
commit a43eef283c

@ -15,7 +15,7 @@ sessionController.revoke = function(req, res, next) {
var _id; var _id;
async.waterfall([ async.waterfall([
async.apply(db.getObjectField, 'sessionUUID:sessionId', req.params.uuid), async.apply(db.getObjectField, 'uid:' + req.uid + ':sessionUUID:sessionId', req.params.uuid),
function(sessionId, next) { function(sessionId, next) {
if (!sessionId) { if (!sessionId) {
return next(new Error('[[error:no-session-found]]')); return next(new Error('[[error:no-session-found]]'));

@ -197,7 +197,7 @@ function continueLogin(req, res, next) {
// Associate login session with user // Associate login session with user
user.auth.addSession(userData.uid, req.sessionID); user.auth.addSession(userData.uid, req.sessionID);
db.setObjectField('sessionUUID:sessionId', uuid, req.sessionID); db.setObjectField('uid:' + userData.uid + 'sessionUUID:sessionId', uuid, req.sessionID);
plugins.fireHook('action:user.loggedIn', userData.uid); plugins.fireHook('action:user.loggedIn', userData.uid);
} }

@ -89,7 +89,7 @@ module.exports = function(User) {
expired = !sessionObj || !sessionObj.hasOwnProperty('passport') expired = !sessionObj || !sessionObj.hasOwnProperty('passport')
|| !sessionObj.passport.hasOwnProperty('user') || !sessionObj.passport.hasOwnProperty('user')
|| parseInt(sessionObj.passport.user, 10) !== parseInt(uid, 10); || parseInt(sessionObj.passport.user, 10) !== parseInt(uid, 10);
if (expired) { if (expired) {
expiredSids.push(_sids[idx]); expiredSids.push(_sids[idx]);
} }
@ -121,7 +121,7 @@ module.exports = function(User) {
db.sessionStore.get(sessionId, function(err, sessionObj) { db.sessionStore.get(sessionId, function(err, sessionObj) {
async.parallel([ async.parallel([
async.apply(db.deleteObjectField, 'sessionUUID:sessionId', sessionObj.meta.uuid), async.apply(db.deleteObjectField, 'uid:' + uid + ':sessionUUID:sessionId', sessionObj.meta.uuid),
async.apply(db.sortedSetRemove, 'uid:' + uid + ':sessions', sessionId), async.apply(db.sortedSetRemove, 'uid:' + uid + ':sessions', sessionId),
async.apply(db.sessionStore.destroy.bind(db.sessionStore), sessionId) async.apply(db.sessionStore.destroy.bind(db.sessionStore), sessionId)
], callback); ], callback);

Loading…
Cancel
Save