我正在使用Node.js服務器,並且正在使用Connect框架進行開發。我試圖在給定的時間間隔後重新生成SID以避免會話固定。有一種方法稱爲req.session.regenerate根據文檔,應該這樣做。使用Nodejs連接重新生成會話ID
«爲了再生會話簡單地 調用該方法,一旦完成一個新 SID和Session實例將在req.session被 初始化»
示例代碼:
req.session.regenerate(function(err){
// will have a new session here
});
在調用上述方法之後,我檢查了req.sessionID的值,結果發現值與befor即
如果我嘗試從req.session.regenerate中獲取sessionID並將其寫入終端,我會得到一個新的SID,這更加令人困惑〜IE爲什麼要只在範圍內生成SID?回電話?如果我將該值賦給全局變量,它的值是未定義的。
我有一種感覺,那就是我忽視的東西。
任何幫助表示讚賞。
你在哪裏/何時檢查'req.sessionID'?也許你正在檢查的代碼實際上是在重新生成函數運行之前檢查的。 – 2011-03-10 22:13:30
我一直在幾個地方檢查。之前,從內部和之後再生以比較這些值。我使用console.log將req.session.id的值發送到終端。它們之間沒有任何區別。 – 2011-03-11 03:21:46
你解決了嗎?我有另一個稍微不同的問題:http://stackoverflow.com/questions/5646905/why-do-i-have-to-create-a-local-reference-to-a-request-session-object-in -nodejs – Lewis 2011-04-13 10:24:58