Module: Meerkat::Webhooks

Defined in:
lib/meerkat/webhooks.rb

Constant Summary collapse

SIGNATURE_HEADER =
"X-Meerkat-Signature"
EVENT_HEADER =
"X-Meerkat-Event"

Class Method Summary collapse

Class Method Details

.sign(payload:, secret:) ⇒ Object



12
13
14
15
# File 'lib/meerkat/webhooks.rb', line 12

def sign(payload:, secret:)
  digest = OpenSSL::HMAC.hexdigest("SHA256", secret, payload)
  "sha256=#{digest}"
end

.verify(payload:, signature:, secret:) ⇒ Object



17
18
19
20
21
22
# File 'lib/meerkat/webhooks.rb', line 17

def verify(payload:, signature:, secret:)
  return false if signature.nil? || signature.empty?

  expected = sign(payload: payload, secret: secret)
  secure_compare(signature, expected)
end