module Sorcery::Model::Submodules::MagicLogin::InstanceMethods
Public Instance Methods
clear_magic_login_token!()
click to toggle source
Clears the token.
# File lib/sorcery/model/submodules/magic_login.rb, line 113 def clear_magic_login_token! config = sorcery_config sorcery_adapter.update_attributes( config.magic_login_token_attribute_name => nil, config.magic_login_token_expires_at_attribute_name => nil ) end
deliver_magic_login_instructions!()
click to toggle source
generates a magic login code with expiration and sends an email to the user.
# File lib/sorcery/model/submodules/magic_login.rb, line 94 def deliver_magic_login_instructions! mail = false config = sorcery_config # hammering protection return false if !config.magic_login_time_between_emails.nil? && send(config.magic_login_email_sent_at_attribute_name) && send(config.magic_login_email_sent_at_attribute_name) > config.magic_login_time_between_emails.seconds.ago self.class.sorcery_adapter.transaction do generate_magic_login_token! unless config.magic_login_mailer_disabled send_magic_login_email! mail = true end end mail end
generate_magic_login_token!()
click to toggle source
generates a reset code with expiration
# File lib/sorcery/model/submodules/magic_login.rb, line 82 def generate_magic_login_token! config = sorcery_config attributes = { config.magic_login_token_attribute_name => TemporaryToken.generate_random_token, config.magic_login_email_sent_at_attribute_name => Time.now.in_time_zone } attributes[config.magic_login_token_expires_at_attribute_name] = Time.now.in_time_zone + config.magic_login_expiration_period if config.magic_login_expiration_period sorcery_adapter.update_attributes(attributes) end
Protected Instance Methods
send_magic_login_email!()
click to toggle source
# File lib/sorcery/model/submodules/magic_login.rb, line 123 def send_magic_login_email! generic_send_email(:magic_login_email_method_name, :magic_login_mailer_class) end