मैं रेल में विशिष्ट कार्यों के लिए प्रामाणिकता टोकन को कैसे अनदेखा करूं?


168

जब मेरे पास एक विशिष्ट कार्रवाई है जो मैं प्रामाणिकता टोकन की जांच नहीं करना चाहता हूं, तो मैं रेल को यह जांचना कैसे छोड़ सकता हूं?

जवाबों:


230

रेल में 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। मैं इसका जवाब खोजने के लिए यहां आया था: क्या यह एक भयानक विचार है? मैं ऐसा करने के लिए देख रहा हूँ क्योंकि एक अजाक्स प्रतिक्रिया मेरा सत्र खाती है।
डैनी

9
रेल 5.2 के लिए, उपयोग करें skip_forgery_protectionएपीआई डॉक्स देखें ।
आरोन ब्रेकेनरिज

27

में Rails4 आप का उपयोग skip_before_actionके साथ exceptया only

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.