Monday, 24 February 2014

ExpiredToken (to do gem)

#Quick and easy expired token based on date
#author: Yannis Kolovos
class ExpiredToken
attr_accessor :expire
def initialize(expire = 0.seconds.from_now)
raise if not expire.acts_like?(:time)
@expire = expire
end
def token
Base64.urlsafe_encode64(expire.to_s)
end
def self.parse(token)
Time.zone.parse(Base64.urlsafe_decode64(token))
end
def valid?
expire.future?
end
def expired?
expire.past?
end
end
# Example:
# make a new client ExpiredToken
# client_token = ExpiredToken.new(10.seconds.from_now)
# client_token = ExpiredToken.new(Emm::Application.config.pdf_server_token_expires_at)
# make a new server ExpiredToken to validate client
# server_validation = ExpiredToken.new(ExpiredToken.parse(client_token.token))
#
# validations:
# server_validation.valid?
# see it change
# loop do
# p server_validation.valid?
# sleep 1
# end
view raw gistfile1.rb hosted with ❤ by GitHub

No comments:

Post a Comment