Class: SimpleApiAuth::Authenticator

Inherits:
Object
  • Object
show all
Includes:
Helpers::Auth
Defined in:
lib/simple-api-auth/authenticator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers::Auth

#allowed_methods, #check_data, #extract_signature, #log_and_fail, #missing_header_message, #options, #request_timeout, #required_headers, #secure_equals?, #sha1_hmac, #valid_time?

Constructor Details

#initialize(request, secret_key, options = {}) ⇒ Authenticator

Returns a new instance of Authenticator.



7
8
9
10
11
12
# File 'lib/simple-api-auth/authenticator.rb', line 7

def initialize(request, secret_key, options = {})
  self.request = SimpleApiAuth::Request.create(request)
  self.signer = SimpleApiAuth.config.signer.new
  @options = options
  @secret_key = secret_key
end

Instance Attribute Details

#requestObject

Returns the value of attribute request.



5
6
7
# File 'lib/simple-api-auth/authenticator.rb', line 5

def request
  @request
end

#signerObject

Returns the value of attribute signer.



5
6
7
# File 'lib/simple-api-auth/authenticator.rb', line 5

def signer
  @signer
end

Instance Method Details

#valid_signature?Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
# File 'lib/simple-api-auth/authenticator.rb', line 14

def valid_signature?
  return false unless check_data(request) && valid_time?(request)
  signed_request = signer.sign(request, @secret_key)
  SimpleApiAuth.log(Logger::DEBUG, "Signed request: #{signed_request}")
  SimpleApiAuth.log(Logger::DEBUG, "User signature: #{signature}")
  secure_equals?(signed_request, signature, @secret_key)
end