2012-06-30 12 views
5

मेरे विन्यास:समाशोधन सत्र, 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 })); 
}); 

अब, मैं एक 'लॉगआउट' क्लिक जो मेरे ऐप्स पर/लॉगआउट को जाता है।

AFAIK, एक्सप्रेस स्वचालित रूप से लॉगआउट पर समाशोधन सत्रों का ख्याल रखता है। लेकिन मेरी कॉन्फ़िगरेशन के साथ, मुझे नहीं लगता कि यह ऐसा कर रहा है। उदाहरण के लिए, सत्र

req.session.custom 

से जुड़े एक कस्टम चर अभी भी लॉगआउट के बाद रखता है। हालांकि,

req.session.auth 

लॉगआउट के बाद साफ़ हो गया है।

मेरे मोंगो डीबी स्टोर में सत्र ऑब्जेक्ट की संख्या केवल समय के साथ बढ़ रही है। मैं हरउथ का उपयोग कर रहा हूं।

मुझे क्या याद आ रही है या गलत कर रहा है?

उत्तर

13

यदि आप लॉगआउट पर उपयोगकर्ता के लिए सत्र को पूरी तरह से साफ़ करना चाहते हैं तो आप अपने everyauth.everymodule.handleLogout फ़ंक्शन से req.session.destroy() पर कॉल कर सकते हैं। जब आप req.logout() पर कॉल करते हैं तो केवल req.session.auth साफ़ हो जाता है।

+0

मैं अपने मोंगो सत्र स्टोर में ऑब्जेक्ट को हटाने के साथ-साथ लॉगआउट पर कैसे जा सकता हूं? – Rajat

+1

'req.session.destroy()' आपके स्टोर से सत्र ऑब्जेक्ट हटा देता है। – JohnnyHK

+0

मुझे नहीं लगता कि req.session.destroy() इसे साफ़ कर रहा है। लॉगआउट से पहले और बाद में, स्टोर पर गिनती() 1 है जब मैं परीक्षण करता हूं। कोई सुराग? – Rajat

संबंधित मुद्दे