Class: MessageBird::SignedRequest Deprecated

Inherits:
Object
  • Object
show all
Defined in:
lib/messagebird/signed_request.rb

Overview

Deprecated.

Use RequestValidator instead.

Instance Method Summary collapse

Constructor Details

#initialize(query_parameters, signature, request_timestamp, body) ⇒ SignedRequest

Deprecated.

Use RequestValidator instead.

Returns a new instance of SignedRequest.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/messagebird/signed_request.rb', line 18

def initialize(query_parameters, signature, request_timestamp, body)
  unless query_parameters.is_a? Hash
    raise ValidationException, 'The "query_parameters" value is invalid.'
  end
  unless signature.is_a? String
    raise ValidationException, 'The "signature" value is invalid.'
  end
  unless request_timestamp.is_a? Integer
    raise ValidationException, 'The "request_timestamp" value is invalid.'
  end
  unless body.is_a? String
    raise ValidationException, 'The "body" value is invalid.'
  end

  @query_parameters = query_parameters
  @signature = signature
  @request_timestamp = request_timestamp
  @body = body
end

Instance Method Details

#build_payloadObject

Deprecated.

Use RequestValidator instead.



48
49
50
51
52
53
54
# File 'lib/messagebird/signed_request.rb', line 48

def build_payload
  parts = []
  parts.push(@request_timestamp)
  parts.push(URI.encode_www_form(@query_parameters.sort))
  parts.push(Digest::SHA256.new.digest(@body))
  parts.join("\n")
end

#recent?(offset = 10) ⇒ Boolean

Deprecated.

Use RequestValidator instead.

Returns:

  • (Boolean)


58
59
60
# File 'lib/messagebird/signed_request.rb', line 58

def recent?(offset = 10)
  (Time.now.getutc.to_i - @request_timestamp) < offset
end

#verify(signing_key) ⇒ Object

Deprecated.

Use RequestValidator::validateSignature instead.



40
41
42
43
44
# File 'lib/messagebird/signed_request.rb', line 40

def verify(signing_key)
  calculated_signature = OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), signing_key, build_payload)
  expected_signature = Base64.decode64(@signature)
  calculated_signature.bytes == expected_signature.bytes
end