Class: CrystalApi::WebhookVerifier

Inherits:
Object
  • Object
show all
Includes:
HmacRequestSigning
Defined in:
lib/crystal_api/webhook_verifier.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HmacRequestSigning

#canonicalize_params, #hmac_sha256, #inject_signature_header, #request_signature, #serialized_params, #sign_params

Constructor Details

#initialize(secret_signing_key, request) ⇒ WebhookVerifier

Returns a new instance of WebhookVerifier.



7
8
9
10
# File 'lib/crystal_api/webhook_verifier.rb', line 7

def initialize(secret_signing_key, request)
  @secret_signing_key = secret_signing_key
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



5
6
7
# File 'lib/crystal_api/webhook_verifier.rb', line 5

def request
  @request
end

#secret_signing_keyObject (readonly)

Returns the value of attribute secret_signing_key.



5
6
7
# File 'lib/crystal_api/webhook_verifier.rb', line 5

def secret_signing_key
  @secret_signing_key
end

Instance Method Details

#expected_signatureObject



16
17
18
# File 'lib/crystal_api/webhook_verifier.rb', line 16

def expected_signature
  hmac_sha256(secret_signing_key, request.raw_post)
end

#verified?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/crystal_api/webhook_verifier.rb', line 12

def verified?
  request_signature(request) == expected_signature
end