我有問題與鐵路真實性令牌和設計登錄/註銷。Rails的CSRF令牌的真實性和設計
我正在使用骨幹js構建單頁面應用程序,所以我使用ajax來登錄/註銷用戶。這是我正在觀察的,我不明白爲什麼會發生這種情況。
我的佈局中有csrf_meta_tags。頁面加載後,我點擊登錄按鈕填寫表單並提交,我已成功登錄。我可以做一個登錄用戶應該能夠做的事情。
現在我單擊一個註銷按鈕,通過ajax發送DELETE請求,並且我已成功註銷。
上面的所有過程都在單個頁面上沒有頁面重新加載發生其所有ajax。
現在當我再次單擊登錄並填寫表單時,它會發送ajax請求,將我登錄但在服務器控制檯顯示警告消息。
WARNING: Can't verify CSRF token authenticity
現在爲什麼它(設計)登錄我,擺在首位,如果它(軌道)無法驗證CSRF令牌的真實性。
,現在當我嘗試做的事情,一個登錄的用戶應該能夠做到這一點失敗,提交表單失敗,從色器件
401 Unauthorized {"error":"You need to sign in or sign up before continuing."}
錯誤消息,並且在服務器控制檯上的警告
WARNING: Can't verify CSRF token authenticity
,並在這一點上,我登出,如果我刷新頁面我自己,我可以看到,我沒有更多的登錄。
這是怎麼回事?
第一次登錄後,我的第一個真實性標記是否過期?
我使用提前
rails (3.2.3)
devise (2.1.0)
謝謝:)
完全相同的問題,我有。如果您找到解決方案,請發表評論。 Thx – vrepsys 2012-08-07 13:50:36
我知道問題出現的原因。因爲csrf令牌在註銷時到期,並且由於它基於ajax的sign_out,頁面不會重新加載,並且新的令牌不會在頁面上獲得,從而導致後續請求不匹配。現在我正在重新加載sign_out上的頁面來解決這個問題。有人(可能是你?)在設計郵件列表上發佈了相同的內容。讓我們看看我們是否可以在那裏得到一些東西... – Abid 2012-08-07 17:05:37
@Abid,我得到了與我的舊鐵路項目相同的錯誤,它讓我發瘋,你找到解決方案嗎?如果你是hava,請告訴我們,tkx – Neo 2012-11-12 15:06:02