Module: OauthHeader
- Defined in:
- lib/oauth_header.rb,
lib/oauth_header/version.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
- .generate_token(size = 7) ⇒ Object
- .get_header(key, secret, method = 'GET', url = '', token = '', grant_type = '') ⇒ Object
- .header(params) ⇒ Object
- .params_format(key) ⇒ Object
- .signature_string_maker(method, uri, params) ⇒ Object
- .ssl_digestive_encoded(key, base_string) ⇒ Object
- .url_encoding(string) ⇒ Object
Class Method Details
.generate_token(size = 7) ⇒ Object
34 35 36 |
# File 'lib/oauth_header.rb', line 34 def self.generate_token(size=7) Base64.encode64(OpenSSL::Random.random_bytes(size)).gsub(/\W/, '') end |
.get_header(key, secret, method = 'GET', url = '', token = '', grant_type = '') ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/oauth_header.rb', line 9 def self.get_header(key, secret, method='GET', url='', token='', grant_type='') begin params = params_format(key) 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 return header_string end |
.header(params) ⇒ Object
53 54 55 56 57 58 59 |
# 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) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/oauth_header.rb', line 23 def self.params_format(key) params = { 'oauth_consumer_key' => key, 'oauth_nonce' => generate_token, '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) ⇒ Object
38 39 40 41 |
# 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) ⇒ Object
43 44 45 46 47 |
# 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) ⇒ Object
49 50 51 |
# File 'lib/oauth_header.rb', line 49 def self.url_encoding(string) CGI::escape(string) end |