2015-10-16 85 views
2

我正在使用cookie-session模塊Expresss.js來處理會話。更新Cookie會話express.js

我想要在每次頁面加載(或ajax調用)時更新會話。這就是他們通常在任何地方工作。

該文檔沒有對此發表任何評論。

我已經試過這樣做,但沒有成功:

app.use(function(req,res,next){ 
    req.sessionOptions.maxAge = 20*1000; 
    return next(); 
}); 

回答

2

我懷疑你是不是發送響應cookie發送到客戶端。我解決了同樣的問題(使用快遞和cookie的會話)與發送包含每個得到不同的值,一個cookie中間件:

app.use(session({ 
    key: cookieKey, 
    secret: cookieSecret, 
    maxAge: 1 * 60 * 60 * 1000 // 1 hour (rolling) 
    }) 
); 

app.get('*', function(req, res, next) { 
    // To update the session expiration time we need to send the new 
    // expiration in the response cookie. 
    // To send again the response cookie to the client we need to 
    // update the session object. 
    req.session.fake = Date.now(); 
    next(); 
}); 

事實上,如果會話對象does not change,Cookie的會話V 1.2。 0不會set the Set-Cookie header將響應cookie發送給客戶端。

+0

爲什麼我們需要設置一個具有新值的虛假會話? – Alvaro

+0

編輯迴應以明確爲什麼需要更改會話對象。 –

+0

因此更新cookie的唯一方法是更改​​其某些屬性?只要我被允許,我會盡快接受答案。 24小時是必要的。 – Alvaro