module DeviseCodeAuthenticatable::LoginCode

Public Instance Methods

default_values() click to toggle source
# File lib/devise_code_authenticatable/login_code.rb, line 12
def default_values
  self.code           ||= rand(10000..99999)
  self.expired        ||= false
  self.retry_times    ||= 0
end
expire_now() click to toggle source
# File lib/devise_code_authenticatable/login_code.rb, line 38
def expire_now
  self.expired = true; save
end
expired?() click to toggle source
# File lib/devise_code_authenticatable/login_code.rb, line 31
def expired?
  retry_time_limit = self.class.retry_limit
  expire_at = (self.created_at || Time.now) + self.class.expire_time

  self.expired = self.expired || Time.now.after?(expire_at) || self.retry_times.to_i > retry_time_limit
end
used?() click to toggle source
# File lib/devise_code_authenticatable/login_code.rb, line 27
def used?
  expired
end
verify(code) click to toggle source
# File lib/devise_code_authenticatable/login_code.rb, line 18
def verify(code)
  if expired?
    return false
  end

  self.retry_times += 1; save
  self.code == code
end