module Neutrino::AudiomaticRails::HMAC
Public Class Methods
check_hash_url(request)
click to toggle source
# File lib/neutrino_audiomatic_hmac.rb, line 7 def self.check_hash_url(request) hash = request.params[:signature] url = request.url[/(.*)&signature/, 1] hash == Neutrino::AudiomaticRails::HMAC.gen_hash(url) end
gen_hash(url)
click to toggle source
# File lib/neutrino_audiomatic_hmac.rb, line 3 def self.gen_hash(url) OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('md5'), Rails.application.secrets.secret_key_base, url) end
verify_response(request)
click to toggle source
# File lib/neutrino_audiomatic_hmac.rb, line 19 def self.verify_response request request.body.rewind data = request.body.read verified = verify_webhook(data, request.headers["HTTP_X_NEUTRINO_AUDIOMATIC_HMAC_SHA256"]) end
verify_webhook(data, hmac_header)
click to toggle source
# File lib/neutrino_audiomatic_hmac.rb, line 13 def self.verify_webhook(data, hmac_header) secret = ::Neutrino::Audiomatic.audiomatic_secret calculated_hmac = Digest::SHA1.hexdigest(data + ":" + secret) calculated_hmac == hmac_header end