NodeJS logout all user sessions NodeJS logout all user sessions mongodb mongodb

NodeJS logout all user sessions


Using connect-mongo, the userId is saved inside a String in mongoDB in sessions collection:

{    "_id" : "J6fsgZ4d1zKp31ml1MRm18YCdlyhvce-",    "session" : "{\"cookie\":{\"originalMaxAge\":15778475958,\"expires\":\"2016-05-17T23:47:27.301Z\",\"secure\":false,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":\"56420a5a8c6601ce29bbd1c1\"}}",    "expires" : ISODate("2016-05-17T12:48:22.049Z")}

Finally, I use this code to remove all his sessions:

var mongoose = require('mongoose'),Schema = mongoose.Schema,Session = mongoose.model('Session', new Schema(), 'sessions');exports.signoutAllSessions = function(req, res) {   var socketio = req.app.get('socketio');   var userId = req.user.id;   var filter = {'session':{'$regex': '.*"user":"'+userId+'".*'}};   req.logout();   res.redirect('/');   Session.remove(filter,function(err,data){       socketio.sockets.to(userId).emit('user.logout');   });};

And an API route call this method.