module Sorcery::Model::TemporaryToken::ClassMethods

Public Instance Methods

load_from_token(token, token_attr_name, token_expiration_date_attr = nil, &block) click to toggle source
# File lib/sorcery/model/temporary_token.rb, line 21
def load_from_token(token, token_attr_name, token_expiration_date_attr = nil, &block)
  return token_response(failure: :invalid_token, &block) if token.blank?

  user = sorcery_adapter.find_by_token(token_attr_name, token)

  return token_response(failure: :user_not_found, &block) unless user

  unless check_expiration_date(user, token_expiration_date_attr)
    return token_response(user: user, failure: :token_expired, &block)
  end

  token_response(user: user, return_value: user, &block)
end

Protected Instance Methods

check_expiration_date(user, token_expiration_date_attr) click to toggle source
# File lib/sorcery/model/temporary_token.rb, line 37
def check_expiration_date(user, token_expiration_date_attr)
  return true unless token_expiration_date_attr

  expires_at = user.send(token_expiration_date_attr)

  !expires_at || (Time.now.in_time_zone < expires_at)
end
token_response(options = {}) { |options, options| ... } click to toggle source
# File lib/sorcery/model/temporary_token.rb, line 45
def token_response(options = {})
  yield(options[:user], options[:failure]) if block_given?

  options[:return_value]
end