module OauthHeader
OauthHeader.get_header
(key, secret)
Constants
- VERSION
Public Class Methods
generate_token(size)
click to toggle source
# File lib/oauth_header.rb, line 34 def self.generate_token(size) Base64.encode64(OpenSSL::Random.random_bytes(size)).gsub(/\W/, '') end
get_header(key, secret, nonce_length=8, method='GET', url='', token='', grant_type='')
click to toggle source
# File lib/oauth_header.rb, line 9 def self.get_header(key, secret, nonce_length=8, method='GET', url='', token='', grant_type='') begin params = params_format(key, nonce_length) signature_string_maker = signature_string_maker(method, url, params) signing_key = secret + '&' + token params['oauth_signature'] = url_encoding(ssl_digestive_encoded(signing_key, signature_string_maker)) params['oauth_consumer_key'] = key header_string = header(params) rescue header_string = '' end header_string end
header(params)
click to toggle source
# File lib/oauth_header.rb, line 53 def self.header(params) header = "OAuth " params.each do |k, v| header = header + k +'='+ "'#{v}'," end header.slice(0..-2) end
params_format(key, nonce_length)
click to toggle source
# File lib/oauth_header.rb, line 23 def self.params_format(key, nonce_length) params = { 'oauth_consumer_key' => key, 'oauth_nonce' => generate_token(nonce_length), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => Time.now.getutc.to_i.to_s, 'oauth_version' => '1.0' } return params end
signature_string_maker(method, uri, params)
click to toggle source
# File lib/oauth_header.rb, line 38 def self.signature_string_maker(method, uri, params) encoded_params = params.sort.collect{ |k, v| url_encoding("#{k}=#{v}") }.join('%26') method + '&' + url_encoding(uri) + '&' + encoded_params end
ssl_digestive_encoded(key, base_string)
click to toggle source
# File lib/oauth_header.rb, line 43 def self.ssl_digestive_encoded(key, base_string) digest = OpenSSL::Digest.new('sha1') ssl_digest = OpenSSL::HMAC.digest(digest, key, base_string) Base64.encode64(ssl_digest).chomp.gsub(/\n/, '') end
url_encoding(string)
click to toggle source
# File lib/oauth_header.rb, line 49 def self.url_encoding(string) CGI::escape(string) end