首頁  >  問答  >  主體

ruby - 無法驗證 CSRF 令牌的真實性

問題:

同樣的介面請求,使用get工作正常。
使用post請求提示:
Can't verify CSRF token authenticity

臨時的解決方法

在controller 中跳過驗證

skip_before_action :verify_authenticity_token, :only => ["your_update_action"]

http://stackoverflow.com/questions/19390389/using-curl-to-access-backend-api-of-rails-app-that-implements-devise

後續疑問

如何透過post請求發送token驗證?

高洛峰高洛峰2758 天前996

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-24 16:01:32

    get是不驗證csrf的,請問你的csrf_token放在請求的body裡面了嗎?

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-04-24 16:01:32

    一般都要在layout檔中呼叫<%= csrf_meta_tags %> 方法,并在js中引入 jquery_ujs

    例如

    application.erb

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>you title</title>
      .....
      <%= csrf_meta_tags %>
    </head>
    <body>
    </body>
    </html>
    

    application.js

    #= require jquery_ujs

    Gemfile

    gem 'rails-jquery'

    回覆
    0
  • 高洛峰

    高洛峰2017-04-24 16:01:32

    是否包含在表單中 或ajax請求body中加入了這個
    看你的說明應該是在post請求的body中沒有加入這個csrf參數

    回覆
    0
  • 取消回覆