Module: ChatSDK::Twilio::Signature

Defined in:
lib/chat_sdk/twilio/signature.rb

Class Method Summary collapse

Class Method Details

.verify!(auth_token, url, params, signature) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/chat_sdk/twilio/signature.rb', line 10

def self.verify!(auth_token, url, params, signature)
  data = url + params.sort.flatten.join
  digest = OpenSSL::HMAC.digest("SHA1", auth_token, data)
  expected = Base64.strict_encode64(digest)

  unless Rack::Utils.secure_compare(expected, signature)
    raise ChatSDK::SignatureVerificationError, "Invalid Twilio signature"
  end

  true
end