Class: UrlAuthenticator::Verifier

Inherits:
Object
  • Object
show all
Defined in:
lib/url_authenticator.rb

Instance Method Summary collapse

Constructor Details

#initialize(secret, now = nil) ⇒ Verifier

Returns a new instance of Verifier.



23
24
25
26
# File 'lib/url_authenticator.rb', line 23

def initialize(secret, now = nil)
  @secret = secret
  @now = (now || Time.now).utc.to_i
end

Instance Method Details

#signature_valid(url, signature) ⇒ Object



36
37
38
39
# File 'lib/url_authenticator.rb', line 36

def signature_valid(url, signature)
  unsigned = url.sub(/(\?|&)signature=#{signature}/, "")
  OpenSSL::HMAC.hexdigest("md5", @secret, unsigned) == signature
end

#verify(url) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/url_authenticator.rb', line 28

def verify(url)
  uri = URI.parse(url)
  params = CGI.parse(uri.query || "")
  expires = params["expires"].first.to_i
  signature = params["signature"].first
  signature_valid(url, signature) && @now <= expires
end