Class: ChartCandy::Authentication
- Inherits:
-
Object
- Object
- ChartCandy::Authentication
- Defined in:
- lib/chart-candy/authentication.rb
Class Method Summary collapse
Instance Method Summary collapse
- #expired? ⇒ Boolean
-
#initialize(request_url, params = {}) ⇒ Authentication
constructor
A new instance of Authentication.
- #valid_token? ⇒ Boolean
Constructor Details
#initialize(request_url, params = {}) ⇒ Authentication
Returns a new instance of Authentication.
20 21 22 23 |
# File 'lib/chart-candy/authentication.rb', line 20 def initialize(request_url, params={}) @request_url = request_url @params = params end |
Class Method Details
.compact_params(original_params) ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/chart-candy/authentication.rb', line 3 def self.compact_params(original_params) compacted_params = '' original_params.each { |k,v| compacted_params << (k.to_s + v.to_s) if not self.reserved_params.include?(k.to_s) } return compacted_params end |
.reserved_params ⇒ Object
11 12 13 |
# File 'lib/chart-candy/authentication.rb', line 11 def self.reserved_params ['action', 'class', 'controller', 'format', 'from', 'nature', 'step', 'to', 'token', 'tools', 'update_every', 'version'] end |
.tokenize(str) ⇒ Object
15 16 17 18 |
# File 'lib/chart-candy/authentication.rb', line 15 def self.tokenize(str) Digest::HMAC.hexdigest(str.chars.sort.join.gsub('/', ''), Rails.configuration.secret_token, Digest::SHA1) #HMAC::SHA1.hexdigest(Rails.configuration.secret_token, str.chars.sort.join.gsub('/', '')) end |
Instance Method Details
#expired? ⇒ Boolean
25 26 27 |
# File 'lib/chart-candy/authentication.rb', line 25 def expired? @params[:timestamp] and Time.parse(@params[:timestamp]) + 12.hours < Time.now end |
#valid_token? ⇒ Boolean
29 30 31 |
# File 'lib/chart-candy/authentication.rb', line 29 def valid_token? @params[:token] == tokenize(filter_url) end |