module SingleUserOauth::Signature
Constants
- UNWANTED_HEADER_KEYS
Public Instance Methods
create(options)
click to toggle source
# File lib/single_user_oauth/signature.rb, line 10 def create(options) @options = options @request_method = @options.fetch(:request_method, '').upcase @requested_url = @options.fetch(:requested_url, '') @consumer_secret = @options.fetch(:oauth_consumer_secret, '') @access_secret = @options.fetch(:oauth_access_secret, '') calc_signature end
Private Instance Methods
calc_signature()
click to toggle source
# File lib/single_user_oauth/signature.rb, line 39 def calc_signature Base64.encode64(hmac_sha1).chomp.gsub(/\n/, '') end
encode(*args)
click to toggle source
# File lib/single_user_oauth/signature.rb, line 30 def encode(*args) string = "" args.each_with_index do |key, index| string << url_encode(key) string << '&' unless index == args.length-1 end string end
escape(item)
click to toggle source
# File lib/single_user_oauth/signature.rb, line 69 def escape(item) CGI.escape(item) end
flatten_nested_hash()
click to toggle source
# File lib/single_user_oauth/signature.rb, line 59 def flatten_nested_hash @options.each_with_object({}) do |(key, value), object| if value.is_a?(Hash) value.collect {|k, v| object[k] = v } elsif key != 'query_params' object[key] = value end end end
hmac_sha1()
click to toggle source
# File lib/single_user_oauth/signature.rb, line 43 def hmac_sha1 OpenSSL::HMAC.digest(OpenSSL::Digest::SHA1.new, signing_key, signature_base_string) end
percent_encode_params()
click to toggle source
# File lib/single_user_oauth/signature.rb, line 51 def percent_encode_params flatten_nested_hash.reject{ |key| UNWANTED_HEADER_KEYS.include?(key) }.collect do |key, value| unless (value.is_a?(Hash) || value.is_a?(Array)) && value.empty? "#{escape(key.to_s)}=#{escape(value.to_s)}" end end.compact.sort! * '&' end
signature_base_string()
click to toggle source
# File lib/single_user_oauth/signature.rb, line 22 def signature_base_string encode(@request_method, @requested_url, percent_encode_params) end
signing_key()
click to toggle source
# File lib/single_user_oauth/signature.rb, line 26 def signing_key encode(@consumer_secret, @access_secret) end
url_encode(item)
click to toggle source
# File lib/single_user_oauth/signature.rb, line 47 def url_encode(item) SingleUserOauth::Utilities.url_encode(item) end