2012-06-30 29 views
5

cấu hình của tôi:phiên thanh toán bù trừ trong MongoDB, expressjs, nodejs

app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.bodyParser()); 
    app.use(express.cookieParser()); 
    app.use(express.session({ 
     secret: 'MY SECRET', 
     store: new MongoStore({ 
      db: 'MY SESSION DB', 
      host: 'localhost', 
      port:88888 
     }) 
    })); 
    app.use(everyauth.middleware()); 
    app.use(express.methodOverride()); 

    app.use(app.router); 
}); 

app.configure('dev', function(){ 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
    appPort = config.port; //Setting PORT to 8888 in dev mode. 
    app.use('/public', express.static(__dirname + '/public')); 
}); 

app.configure('production', function(){ 
    app.use(express.errorHandler()); 
    appPort = config.port; 
    //Set cache-header-expires to 1 day 
    var oneDay = 86400000; 
    //app.use('/public', express.static(__dirname + '/public')); 
    app.use('/public',express.static(__dirname + '/public', { maxAge: oneDay })); 
}); 

Bây giờ, tôi có liên kết 'Thoát' đó đi vào/logout trên ứng dụng của tôi.

AFAIK, tự động hiển thị sẽ xử lý các phiên xóa khi đăng xuất. Nhưng với cấu hình của tôi, tôi không nghĩ rằng nó làm điều đó. Ví dụ: Biến tùy chỉnh được đính kèm với phiên

req.session.custom 

vẫn giữ sau khi đăng xuất. Tuy nhiên,

req.session.auth 

sẽ bị xóa sau khi đăng xuất.

Số đối tượng phiên trong cửa hàng MongoDb của tôi chỉ tăng dần theo thời gian. Tôi đang sử dụng everyauth.

Tôi đang thiếu hoặc làm gì sai?

Trả lời

13

Nếu bạn muốn xóa hoàn toàn phiên cho người dùng khi đăng xuất, bạn có thể gọi req.session.destroy() từ chức năng everyauth.everymodule.handleLogout của mình. Chỉ req.session.auth bị xóa khi bạn gọi req.logout().

+0

Làm cách nào để xóa đối tượng trong cửa hàng phiên Mongo của tôi cũng như khi đăng xuất? – Rajat

+1

'req.session.destroy()' xóa đối tượng phiên khỏi cửa hàng của bạn. – JohnnyHK

+0

Tôi không nghĩ req.session.destroy() đang xóa nó. Cả trước và sau khi đăng xuất, count() trên cửa hàng là 1 khi tôi kiểm tra. Bất kỳ đầu mối? – Rajat

Các vấn đề liên quan