ฉันจะเพิกเฉยโทเค็นของแท้สำหรับการดำเนินการเฉพาะใน Rails ได้อย่างไร


168

เมื่อฉันมีการกระทำเฉพาะที่ฉันไม่ต้องการตรวจสอบโทเค็นของแท้ฉันจะบอก Rails ให้ข้ามการตรวจสอบได้อย่างไร

คำตอบ:


230

ใน Rails 4:

skip_before_action :verify_authenticity_token, except: [:create, :update, :destroy]

และทางรถไฟ 3:

skip_before_filter :verify_authenticity_token

สำหรับรุ่นก่อนหน้า:

สำหรับการกระทำส่วนบุคคลคุณสามารถทำได้:

protect_from_forgery :only => [:update, :destroy, :create]
#or
protect_from_forgery :except => [:update, :destroy, :create]

สำหรับคอนโทรลเลอร์ทั้งหมดคุณสามารถ:

skip_before_action :verify_authenticity_token

สำหรับคอนโทรลเลอร์และแอ็คชันเฉพาะให้ใช้: skip_before_filter: Verify_authenticity_token,: only =>: my_unprotected_action ฉันมาที่นี่เพื่อค้นหาคำตอบ: นี่เป็นความคิดที่แย่ใช่ไหม ฉันต้องการทำเช่นนี้เพราะการตอบสนอง Ajax กินเซสชั่นของฉัน
Danny

9
สำหรับราง 5.2 skip_forgery_protectionการใช้งาน ดูเอกสาร API
Aaron Breckenridge

27

ในRails4คุณใช้skip_before_actionด้วยหรือexceptonly

class UsersController < ApplicationController
  skip_before_action :verify_authenticity_token, only: [:create]
  skip_before_action :some_custom_action, except: [:new]

  def new
    # code
  end

  def create
    # code
  end

  protected
  def some_custom_action
    # code
  end
end
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.