2013-06-12 43 views
3

在什麼情況下form_authenticity_token與params [:authenticity_token]不匹配?Rails form_authenticity_token與params [:authenticity_token]不匹配

我看到未經驗證的請求進入我的應用程序,所以我否認form_tag打印出一些調試信息。

form_auth_token: #{form_authenticity_token.inspect} 
session_csrf_token: #{session['_csrf_token'].inspect} 
params:    #{params.inspect} 

而且我得到的輸出,顯示,本屆會議有適當的標記以匹配form_auth_token,但PARAMS提交authenticity_token不匹配:

form_auth_token: "gckttsVeq2XvTBwQX3BaInWCivIhvR/mYBWjs119eb8=" 
session_csrf_token: "gckttsVeq2XvTBwQX3BaInWCivIhvR/mYBWjs119eb8=" 
params:    {"utf8"=>"✓", "authenticity_token"=>"+5IINl7vEh1jJJwP+RiXXws+4kEwM3fpJsCOn+gZ0AA=" ... 

我認爲,通過定義PARAMS [: authenticity_token]將與form_authenticity_token相同。

  1. 我在調試這個錯誤的方式嗎?
  2. 什麼可能導致這種情況?

回答

0

一些快速建議:如果您使用的是rails jquery助手,rails會自動在POST請求中從HTML文檔的頭部添加csrf-token元標記值。我會檢查你的HTML文檔的<head>標記的值是否與它匹配。