class WangluAPI::Auth
Public Class Methods
new(access_key, secret_key)
click to toggle source
# File lib/wanglu_api/auth.rb, line 4 def initialize(access_key, secret_key) @access_key = access_key @secret_key = secret_key end
Public Instance Methods
format_params(params)
click to toggle source
# File lib/wanglu_api/auth.rb, line 28 def format_params(params) params = params.symbolize_keys params[:access_key] ||= @access_key params[:tonce] ||= (Time.now.to_f*1000).to_i params end
payload(verb, path, params)
click to toggle source
# File lib/wanglu_api/auth.rb, line 24 def payload(verb, path, params) "#{verb.upcase}|#{path}|#{params}" end
sign(verb, path, params)
click to toggle source
# File lib/wanglu_api/auth.rb, line 20 def sign(verb, path, params) OpenSSL::HMAC.hexdigest 'SHA256', @secret_key, payload(verb, path, params) end
signed_challenge(challenge)
click to toggle source
# File lib/wanglu_api/auth.rb, line 9 def signed_challenge(challenge) signature = OpenSSL::HMAC.hexdigest 'SHA256', @secret_key, "#{@access_key}#{challenge}" {auth: {access_key: @access_key, answer: signature}} end
signed_params(verb, path, params={})
click to toggle source
# File lib/wanglu_api/auth.rb, line 14 def signed_params(verb, path, params={}) params = format_params params signature = sign verb, path, URI.unescape(params.to_query) params.merge(signature: signature) end