Class: Vonage::Signature

Inherits:
Object
  • Object
show all
Defined in:
lib/vonage/signature.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Signature

Returns a new instance of Signature.



9
10
11
# File 'lib/vonage/signature.rb', line 9

def initialize(config)
  @config = config
end

Instance Method Details

#check(params, signature_secret: @config.signature_secret, signature_method: @config.signature_method) ⇒ Object

Check webhook request signature.

Examples:

client = Vonage::Client.new
client.config.signature_secret = 'secret'
client.config.signature_method = 'sha512'

if client.signature.check(request.GET)
  # valid signature
else
  # invalid signature
end

Parameters:

  • params (Hash)

See Also:



53
54
55
56
57
58
59
# File 'lib/vonage/signature.rb', line 53

def check(params, signature_secret: @config.signature_secret, signature_method: @config.signature_method)
  params = params.dup

  signature = params.delete('sig')

  ::JWT::JWA::Hmac::SecurityUtils.secure_compare(signature, digest(params, signature_secret, signature_method))
end

#generate(params, signature_secret: @config.signature_secret, signature_method: @config.signature_method) ⇒ Object

Generate a request signature.

Examples:

client = Vonage::Client.new
client.config.signature_secret = 'secret'
client.config.signature_method = 'sha512'
params = {
  'api_key' => 'abc123',
  'to' => '447900000000',
  'from' => '447900000001',
  'text' => 'Hello World',
  'timestamp' => '1385047698'
}

sig = client.signature.generate(params)

Parameters:

  • params (Hash)

See Also:



32
33
34
# File 'lib/vonage/signature.rb', line 32

def generate(params, signature_secret: @config.signature_secret, signature_method: @config.signature_method)
  digest(params, signature_secret, signature_method)
end