Class: ChartCandy::Authentication

Inherits:
Object
  • Object
show all
Defined in:
lib/chart-candy/authentication.rb

Class Method Summary collapse

Instance Method Summary collapse

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_paramsObject



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

Returns:

  • (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

Returns:

  • (Boolean)


29
30
31
# File 'lib/chart-candy/authentication.rb', line 29

def valid_token?
  @params[:token] == tokenize(filter_url)
end