Module: MultiFactorAuth::Methods

Included in:
HOTP, TOTP
Defined in:
lib/multi_factor_auth/methods.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/multi_factor_auth/methods.rb', line 11

def self.extended base
  base.class_eval do
    def qr_code email, opts = {}
      self.singleton_class.generate_qr_code provisioning_uri(email), opts
    end
  end
end

Instance Method Details

#generate_qr_code(link, opts = {}) ⇒ Object



34
35
36
# File 'lib/multi_factor_auth/methods.rb', line 34

def generate_qr_code link, opts = {}
  RQRCode::QRCode.new(link, {level: :h}.merge(opts))
end

#generate_secret(str_or_arr = nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/multi_factor_auth/methods.rb', line 19

def generate_secret str_or_arr = nil
  case str_or_arr
  when Array
    Base32.encode Digest::MD5.hexdigest("#{str_or_arr.join(SecureRandom.uuid)}")
  when String
    Base32.encode Digest::MD5.hexdigest(str_or_arr)
  else
    random_base32
  end
end

#random_base32Object



30
31
32
# File 'lib/multi_factor_auth/methods.rb', line 30

def random_base32
  ROTP::Base32.random_base32
end