Sha256: 867794411b0d3f51e0c8bf6d43804033792f6e4cf4e3ba008a7c9338000063e3

Contents?: true

Size: 941 Bytes

Versions: 3

Compression:

Stored size: 941 Bytes

Contents

module AngularRailsCsrf
  module Concern
    extend ActiveSupport::Concern

    included do
      if Rails::VERSION::MAJOR < 4
        after_filter :set_xsrf_token_cookie
      else
        after_action :set_xsrf_token_cookie
      end
    end

    def set_xsrf_token_cookie
      if protect_against_forgery? && !respond_to?(:__exclude_xsrf_token_cookie?)
        cookies['XSRF-TOKEN'] = form_authenticity_token
      end
    end

    def verified_request?
      if respond_to?(:valid_authenticity_token?, true)
        super || valid_authenticity_token?(session, request.headers['X-XSRF-TOKEN'])
      else
        super || form_authenticity_token == request.headers['X-XSRF-TOKEN']
      end
    end

    module ClassMethods
      def exclude_xsrf_token_cookie
        self.class_eval do
          def __exclude_xsrf_token_cookie?
            true
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
angular_rails_csrf-2.1.1 lib/angular_rails_csrf/concern.rb
angular_rails_csrf-2.1.0 lib/angular_rails_csrf/concern.rb
angular_rails_csrf-2.0.0 lib/angular_rails_csrf/concern.rb