Sha256: cfc2ea6b395224c0f220c93b513d5e1f3d60f0f07f305a3ea92670ee8d12091e
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
require "active_support/configurable" require "action_controller" module OmniAuth module JetsCsrfProtection # Provides a callable method that verifies Cross-Site Request Forgery # protection token. This class includes # `ActionController::RequestForgeryProtection` directly and utilizes # `verified_request?` method to match the way Jets performs token # verification in Jets controllers. # # If you like to learn more about how Jets generate and verify # authenticity token, you can find the source code at # https://github.com/rails/rails/blob/v5.2.2/actionpack/lib/action_controller/metal/request_forgery_protection.rb#L217-L240. class TokenVerifier include ActiveSupport::Configurable include ActionController::RequestForgeryProtection # `ActionController::RequestForgeryProtection` contains a few # configurable options. As we want to make sure that our configuration is # the same as what being set in `ActionController::Base`, we should make # all out configuration methods to delegate to `ActionController::Base`. config.each_key do |configuration_name| undef_method configuration_name define_method configuration_name do ActionController::Base.config[configuration_name] end end def call(env) @request = env['jets.controller'].request unless verified_request? raise ActionController::InvalidAuthenticityToken end end private attr_reader :request delegate :params, :session, to: :request end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-jets_csrf_protection-0.1.0 | lib/omniauth/jets_csrf_protection/token_verifier.rb |