class Onfido::Webhook
Public Class Methods
valid?(request_body, request_signature, token)
click to toggle source
As well as being a normal resource, Onfido::Webhook
also supports verifying the authenticity of a webhook by comparing the signature on the request to one computed from the body
# File lib/onfido/resources/webhook.rb, line 25 def self.valid?(request_body, request_signature, token) if [request_body, request_signature, token].any?(&:nil?) raise ArgumentError, 'A request body, request signature and token ' \ 'must be provided' end computed_signature = generate_signature(request_body, token) Rack::Utils.secure_compare(request_signature, computed_signature) end
Private Class Methods
generate_signature(request_body, token)
click to toggle source
# File lib/onfido/resources/webhook.rb, line 35 def self.generate_signature(request_body, token) OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), token, request_body) end
Public Instance Methods
all()
click to toggle source
# File lib/onfido/resources/webhook.rb, line 14 def all get(path: 'webhooks') end
create(url:, **payload)
click to toggle source
# File lib/onfido/resources/webhook.rb, line 5 def create(url:, **payload) payload[:url] = url post(path: 'webhooks', payload: payload) end
destroy(webhook_id)
click to toggle source
# File lib/onfido/resources/webhook.rb, line 18 def destroy(webhook_id) delete(path: "webhooks/#{webhook_id}") end
find(webhooks_id)
click to toggle source
# File lib/onfido/resources/webhook.rb, line 10 def find(webhooks_id) get(path: "webhooks/#{webhooks_id}") end