Module: ConcernsOnRails::Controllers::WebhookVerifiable::ClassMethods
- Defined in:
- lib/concerns_on_rails/controllers/webhook_verifiable.rb
Instance Method Summary collapse
-
#verify_webhook(*actions, secret:, scheme: :hex, header: nil, tolerance: nil, digest: :sha256) ⇒ Object
Declare signature verification for the given actions (none = catch-all).
Instance Method Details
#verify_webhook(*actions, secret:, scheme: :hex, header: nil, tolerance: nil, digest: :sha256) ⇒ Object
Declare signature verification for the given actions (none = catch-all). Each call appends a rule; the FIRST rule matching the current action wins, so declare specific rules before a catch-all.
95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/concerns_on_rails/controllers/webhook_verifiable.rb', line 95 def verify_webhook(*actions, secret:, scheme: :hex, header: nil, tolerance: nil, digest: :sha256) actions = actions.flatten.map(&:to_s) scheme = scheme.to_sym digest = digest.to_sym validate_verify_webhook!(secret: secret, scheme: scheme, header: header, tolerance: tolerance, digest: digest) rule = { actions: actions, secret: secret, scheme: scheme, header: (header || SCHEMES[scheme][:header]).to_s, tolerance: scheme == :stripe ? (tolerance || STRIPE_DEFAULT_TOLERANCE).to_i : nil, digest: digest } self.webhook_rules = webhook_rules + [rule] end |