class FaradayMiddleware::Authentication
Public Class Methods
new(app, key, secret)
click to toggle source
Calls superclass method
# File lib/faraday/authentication.rb, line 7 def initialize(app, key, secret) super(app) @key = key @secret = secret end
Public Instance Methods
call(env)
click to toggle source
# File lib/faraday/authentication.rb, line 13 def call(env) return @app.call(env) if @key.nil? || @secret.nil? timestamp = (Time.now - 600).to_i.to_s method = env[:method].to_s.upcase path = env[:url].path + (env[:url].query ? '?' + env[:url].query : '') body = env[:body] || '' signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, method + path + timestamp + body) env[:request_headers]['api-expires'] = timestamp env[:request_headers]['api-key'] = @key if @key env[:request_headers]['api-signature'] = signature @app.call env end