module Gigya::Utils
Public Class Methods
build_signature_params(client_id, client_secret, base_url, query)
click to toggle source
# File lib/gigya/utils.rb, line 3 def self.build_signature_params(client_id, client_secret, base_url, query) timestamp = Time.now.gmtime.to_i nonce = CGI.escape("#{rand(0..10)}#{timestamp}") query = CGI.escape(query).gsub('+', '%20') escaped_url = CGI.escape(base_url) decoded_secret = Base64.decode64(client_secret) params = { apiKey: CGI.escape(client_id), nonce: nonce, query: query, timestamp: timestamp } query_string = CGI.escape(build_query_string(params)) base_string = "POST&#{escaped_url}&#{query_string}" hmac_sha1 = HMAC::SHA1.digest(decoded_secret, base_string) signature = Base64.encode64(hmac_sha1).chomp.gsub(/\n/,'') params.merge!(sig: signature) end
Private Class Methods
build_query_string(hash)
click to toggle source
# File lib/gigya/utils.rb, line 26 def self.build_query_string(hash) hash.to_a.map { |e| "#{e[0]}=#{e[1]}" }.join('&') end