Class: ROTP::TOTP

Inherits:
OTP
  • Object
show all
Defined in:
lib/rotp/totp.rb

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from OTP

#byte_secret, #generate_otp, #int_to_bytestring

Constructor Details

- (TOTP) initialize(s, options = {})

A new instance of TOTP



6
7
8
9
# File 'lib/rotp/totp.rb', line 6

def initialize(s, options = {})
  @interval = options[:interval] || 30
  super
end

Instance Attribute Details

- (Object) interval (readonly)

Returns the value of attribute interval



4
5
6
# File 'lib/rotp/totp.rb', line 4

def interval
  @interval
end

Instance Method Details

- (Object) at(time)



11
12
13
14
15
16
# File 'lib/rotp/totp.rb', line 11

def at(time)
  unless time.class == Time
    time = Time.at(time.to_i)
  end
  generate_otp(timecode(time))
end

- (Object) now



18
19
20
# File 'lib/rotp/totp.rb', line 18

def now
  generate_otp(timecode(Time.now))
end

- (String) provisioning_uri(name)

Returns the provisioning URI for the OTP This can then be encoded in a QR Code and used to provision the Google Authenticator app

Parameters:

  • (String) name

    of the account

Returns:

  • (String)

    provisioning uri



27
28
29
# File 'lib/rotp/totp.rb', line 27

def provisioning_uri(name)
  "otpauth://totp/#{URI.encode(name)}?secret=#{secret}"
end