MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

NodeJS đăng xuất tất cả các phiên người dùng

Sử dụng connect-mongo , userId được lưu bên trong một Chuỗi trong mongoDB trong bộ sưu tập phiên :

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

Cuối cùng, tôi sử dụng mã này để xóa tất cả các phiên của anh ấy:

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

Và một tuyến API gọi phương thức này.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Rails 4 / Devise / MongoDB:Các tham số không được phép sử dụng các thuộc tính tùy chỉnh và các tham số mạnh

  2. MongoRepository @Query Không thể phân tích cú pháp chuỗi thành ngày tháng

  3. Làm cách nào để chia sẻ mô hình mongoose giữa 2 ứng dụng?

  4. node-mongodb-native:Làm cách nào để chia sẻ đối tượng db api của lệnh gọi lại kết nối thông qua ứng dụng của tôi

  5. Sử dụng khai báo không tìm thấy trong trình điều khiển c ++ mongodb