Class: UrlAuthenticator::Verifier
- Inherits:
-
Object
- Object
- UrlAuthenticator::Verifier
- Defined in:
- lib/url_authenticator.rb
Instance Method Summary collapse
-
#initialize(secret, now = nil) ⇒ Verifier
constructor
A new instance of Verifier.
- #signature_valid(url, signature) ⇒ Object
- #verify(url) ⇒ Object
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 |