當我碰到一些真實性令牌問題時,我正在開發新的Rails 4應用程序(在Ruby 2.0.0-p0上)。Rails 4真品令牌
在寫一個控制器,響應JSON(使用respond_to
類的方法),我到了create
行動我開始ActionController::InvalidAuthenticityToken
例外,當我試圖創建一個使用curl
紀錄。
我確定我設置了-H "Content-Type: application/json"
,並將數據設置爲-d "<my data here>"
,但仍然沒有運氣。
我嘗試使用Rails 3.2編寫相同的控制器(在Ruby 1.9.3上),並且我沒有任何真實性令牌問題。我搜索了四周,我發現Rails 4中的真實性令牌發生了一些變化。根據我的理解,它們不再自動插入到表單中了?我想這會以某種方式影響非HTML內容類型。
有什麼辦法可以解決這個問題,而不必申請一個HTML表單,搶走真實性標記,然後用該標記發出另一個請求?還是我完全錯過了一些完全明顯的東西?
編輯:我只是想用一個支架不改變任何東西在一個新的Rails創造了新的記錄4應用程序,我遇到了同樣的問題,所以我想這不是我做的事。
你可以一起刪除:with選項:null_session是默認值:http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html – Casey 2013-08-20 20:29:52
有沒有辦法使用異常的非JSON JSON調用(aka API調用)的調用和空會話? – 2014-01-09 14:38:05
@JamesMcMahon您可以編寫自己的'before_action'來檢查格式和請求是否被驗證。我不知道任何建立條件的方式。 – alexcoco 2014-01-09 15:11:35