2010-08-06 84 views
3

這是交易。Rails InvalidAuthenticityToken隨機時間

我們的應用程序正在運行,正在被作者用來發送網站內容。 問題在於,在我們的作者提交表單以供網站中的任何資源使用後,我們的編寫人員不時發現錯誤。檢查生產日誌後的錯誤是舊的InvalidAuthenticityToken。

問題是,它們不會更改標記,它們不會使表單失效,它們不會執行任何操作,而是在編輯器中編寫並單擊「提交」。

錯誤似乎是完全隨機的,有時會發生,有時不會發生:/ 我所知道的只是編輯或創建項目時發生,因此POST或PUT請求,但問題是,它不在應用程序的某個特定領域,它最終只是偶爾發生在我們的所有表單上。

我們的環境是一個HAProxy,爲20個mongrels運行我們的應用程序的mongrel_cluster。 Rails版本是2.3.8

這可能是會話在不同的雜種的問題嗎? 如果沒有,我可以做些什麼來阻止這種隨機錯誤,這使得作家有時會因爲該錯誤而失去大量時間編輯文本並丟失它。

任何幫助真的很感激。

+0

我讀過關於同一個問題的地方,也許它是一些錯誤 – Bohdan 2010-08-06 14:16:52

回答

3

這個問題比我預料的要簡單得多。

會話計時器被設置爲900秒,有時編寫者花費的時間比在同一頁面內編輯文本的時間長,在網站上沒有任何其他導航。

由於超時導致會話失效,然後當表單最終提交時,真實性標記的會話部分被重置,因此引發了InvalidAuthenticityToken錯誤。

+0

我也在隨機時間得到這個。你如何更新會話計時器? – johnnymire 2010-08-22 18:45:32

+1

這是在你的環境的環境文件上做的,使用config.action_controller.session hash – Draiken 2010-08-27 11:55:59