MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

NodeJS wylogowuje wszystkie sesje użytkowników

Korzystanie z connect-mongo , userId jest zapisywany wewnątrz ciągu w mongoDB w kolekcji sesji :

{
    "_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")
}

Na koniec używam tego kodu, aby usunąć wszystkie jego sesje:

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');
   });
};

Trasa API wywołuje tę metodę.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nowe funkcje zarządzania kopiami zapasowymi i zabezpieczenia dla MySQL i PostgreSQL:ClusterControl w wersji 1.6.2

  2. Mongoose znajdź jeden i przejdź do szeregu dokumentów

  3. Importuj dane do MongoDB z pliku JSON za pomocą Java

  4. Znajdowanie przecięcia między dwiema kolekcjami w MongoDb

  5. Aktualizacja Mongodb z upsert nie powiodła się