Module: ActionController::RequestForgeryProtection::ClassMethods

Defined in:
actionpack/lib/action_controller/metal/request_forgery_protection.rb

Instance Method Summary collapse

Instance Method Details

#protect_from_forgery(options = {}) ⇒ Object

Turn on request forgery protection. Bear in mind that only non-GET, HTML/JavaScript requests are checked.

class ApplicationController < ActionController::Base
  protect_from_forgery
end

class FooController < ApplicationController
  protect_from_forgery except: :index

You can disable CSRF protection on controller by skipping the verification before_action:

skip_before_action :verify_authenticity_token

Valid Options:

  • :only/:except - Passed to the before_action call. Set which actions are verified.

  • :with - Set the method to handle unverified request.

Valid unverified request handling methods are:

  • :exception - Raises ActionController::InvalidAuthenticityToken exception.

  • :reset_session - Resets the session.

  • :null_session - Provides an empty session during request but doesn’t reset it completely. Used as default if :with option is not specified.



97
98
99
100
101
102
# File 'actionpack/lib/action_controller/metal/request_forgery_protection.rb', line 97

def protect_from_forgery(options = {})
  self.forgery_protection_strategy = protection_method_class(options[:with] || :null_session)
  self.request_forgery_protection_token ||= :authenticity_token
  prepend_before_action :verify_authenticity_token, options
  append_after_action :verify_same_origin_request
end