2016-03-07 102 views
0

我在快速應用程序中使用stormpath-express和express-session。登錄部分工作正常。但是,當我註銷時,以前的會話屬性仍然存在於會話中。我可以看到會話屬性connect.sid保持不變stormpath快速會話註銷不刪除會話

我像這樣調用/註銷<button class="btn btn-default btn-default navbar-btn" onclick="$.post('/logout', function(data) {location.href='/'})">這是對/ logout的ajax POST調用。

根據stormpath文檔,會話將被銷燬。但是,當我用不同的用戶登錄時,以前的會話cookie仍然存在。

var session = require('express-session');  
app.use(session({ 
     genid: function(req) { 
     return uuid.v1(); 
     }, 
     secret: 'xxxxx', 
     resave: false, 
     saveUninitialized: false 
    })); 

註銷後,以前的會話屬性仍然存在

var sess = req.session; 
     if(sess.phoneNumbers) { 
      console.log('reuse phoneNumbers from session'); // why it still here??? 
     } else { 

回答

0

Express-Stormpath只會刪除其管理,它不會刪除自己的Cookie餅乾,因爲我們不想幹涉任何其他會話cookie可能用於的自定義用例。

如果您希望與我們同時刪除您的Cookie,則可以實施在我們之前運行的路由處理程序。簡單地調用上面這段代碼的地方stormpath.init()

app.post('/logout', function (req, res, next) { 
    // delete the cookies that you need to delete 
    next(); // our logout handler will get called next 
    }); 

我們計劃增加一個Post-Logout Handler,讓你做同樣的事情。

我希望這個答案有幫助!附:我在Stormpath工作,我維護這些庫:)