簡體   English   中英

Rails的ActionController :: InvalidAuthenticityToken錯誤

[英]Rails ActionController::InvalidAuthenticityToken error

我的Rails應用程序有時會向我發送有關隨機createupdate操作的ActionController :: InvalidAuthenticityToken錯誤報告。 我的頭標簽中有csrf_meta_tags ,並且99%的請求都可以工作。

在文檔中,我已經看到可以使用以下protect_from_forgery with: :null_session來嘗試protect_from_forgery with: :null_session但是該選項僅適用於API。

我不確定該怎么辦。 您有什么建議嗎?

我正在使用Rails 4.1,但舊版本存在相同的問題。

在執行custom Ajax時必須如此。 您必須顯式傳遞csrf令牌。 像這樣的事情對我來說幾乎占90%。

$.ajax your_url ,
   beforeSend: (xhr) ->
      xhr.setRequestHeader "X-CSRF-Token", $("meta[name=\"csrf-token\"]").attr("content")

是的,不建議使用

 protect_from_forgery with: :null_session

除非您有某種機制可以區分好請求和欺詐請求。 在api中,我們通常會有一些token來幫助驗證請求。

如果您將session_id存儲在cookie中,則這些請求可能來自具有禁用cookie的用戶。 實際上,由於CSRF令牌存儲在會話中,因此他們甚至無法登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM