我的應用程序是一個完整的AJAX網頁使用Codeigniter框架和memcached會話處理程序。會話重新生成導致快速AJAX調用過期的會話
有時,它會發送很多異步調用,並且如果會話必須重新生成其ID(以避免會話固定安全問題),會話Cookie不會更新得足夠快,並且由於會話ID過期,某些AJAX調用會失敗。
我遇到類似的走線(例如this one),但答案並不能真正解決我的問題,我不能禁用因爲在我的應用程序中只有AJAX調用的安全性。不過,我有一個想法,我希望在入侵Codeigniter會話處理程序類之前提出一個意見: 這個想法是管理2個同時會話ID一段時間,例如30秒。這將是最大的請求執行時間。因此,在會話重新生成後,服務器仍然會接受以前的會話ID,並切換到新的會話。 使用,這將使這樣的事情同樣的畫面:
您正在使用什麼版本的CI的?這似乎是CI會話處理中的一個持續性錯誤,特別是對於db會話。我認爲支持多個會話ID可能會像黑客一樣工作,但似乎是在尋求麻煩。你可以使用其他的會話處理程序,也許使用Redis或類似的本地PHP會話嗎?你也看過[這個主題](https://github.com/bcit-ci/CodeIgniter/issues/3097)嗎? – ldg
@Idg:我讀了所有這些線程。它講述了這個問題,CI3(我的版本)通過禁用AJAX請求更新會話來解決這個問題。問題是我唯一的* *在我的應用程序的AJAX請求.... –
@NicolasThery你能簡單的介紹一下什麼樣的,你有 –