class ExpirableToken
Attributes
expire_on[R]
extra[R]
id[R]
Public Class Methods
from_token(token)
click to toggle source
# File lib/expirable_token.rb, line 53 def self.from_token(token) instance = ExpirableToken.new(nil, nil) instance.decode(token) return instance end
new(id, extra, expire_on = nil)
click to toggle source
# File lib/expirable_token.rb, line 12 def initialize(id, extra, expire_on = nil) @id = id @extra = extra @created_on = Time.now.to_i if expire_on.nil? @expire_on = @created_on + 86400 else @expire_on = expire_on end @diff = @expire_on - @created_on end
Public Instance Methods
decode(token)
click to toggle source
# File lib/expirable_token.rb, line 43 def decode(token) a = JSON.parse(Base64.decode64(URI::decode(token)+"==\n")) @id = a['0'] @extra = a['1'] @diff = a['2'] @created_on = a['3'] @expire_on = a['4'] is_valid end
encode()
click to toggle source
# File lib/expirable_token.rb, line 29 def encode URI::encode(Base64.encode64( JSON.generate( { 0 => @id, 1 => @extra, 2 => @diff, 3 => @created_on, 4 => @expire_on } ) ).chomp.chomp('=').chomp('=')) end
is_valid()
click to toggle source
# File lib/expirable_token.rb, line 24 def is_valid today = Time.now.to_i !@id.nil? && (@diff = (@expire_on - @created_on)) && (@expire_on > today) end