Class: Twilio::Security::RequestValidator
- Inherits:
-
Object
- Object
- Twilio::Security::RequestValidator
- Defined in:
- lib/twilio-ruby/security/request_validator.rb
Instance Method Summary collapse
- #build_signature_for(url, params) ⇒ Object
-
#initialize(auth_token = nil) ⇒ RequestValidator
constructor
A new instance of RequestValidator.
- #validate(url, params, signature) ⇒ Object
Constructor Details
#initialize(auth_token = nil) ⇒ RequestValidator
Returns a new instance of RequestValidator.
6 7 8 9 |
# File 'lib/twilio-ruby/security/request_validator.rb', line 6 def initialize(auth_token = nil) @auth_token = auth_token || Twilio.auth_token raise ArgumentError, 'Auth token is required' if @auth_token.nil? end |
Instance Method Details
#build_signature_for(url, params) ⇒ Object
17 18 19 20 21 |
# File 'lib/twilio-ruby/security/request_validator.rb', line 17 def build_signature_for(url, params) data = url + params.sort.join digest = OpenSSL::Digest.new('sha1') Base64.encode64(OpenSSL::HMAC.digest(digest, @auth_token, data)).strip end |
#validate(url, params, signature) ⇒ Object
11 12 13 14 15 |
# File 'lib/twilio-ruby/security/request_validator.rb', line 11 def validate(url, params, signature) params_hash = params_to_hash(params) expected = build_signature_for(url, params_hash) secure_compare(expected, signature) end |