Module: IprogOtpGenerator::OtpCode
- Defined in:
- lib/iprog_otp_generator/otp_code.rb
Instance Method Summary collapse
- #clear_otp_code ⇒ Object
- #generate_otp_code(length = 8) ⇒ Object
- #valid_otp_code?(code = nil) ⇒ Boolean
Instance Method Details
#clear_otp_code ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/iprog_otp_generator/otp_code.rb', line 26 def clear_otp_code self.otp_code = nil self.otp_code_expires_at = nil self.otp_code_confirmed = false save(validate: false) end |
#generate_otp_code(length = 8) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/iprog_otp_generator/otp_code.rb', line 5 def generate_otp_code(length = 8) begin self.otp_code = Array.new(length) { rand(0..9) }.join end while self.class.exists?(otp_code: otp_code) self.otp_code_expires_at = Time.now + 5.minutes self.otp_code_confirmed = false save(validate: false) end |
#valid_otp_code?(code = nil) ⇒ Boolean
16 17 18 19 20 21 22 23 24 |
# File 'lib/iprog_otp_generator/otp_code.rb', line 16 def valid_otp_code?(code = nil) return false unless otp_code && otp_code_expires_at if otp_code == code && otp_code_expires_at > Time.now update_columns otp_code_confirmed: true end otp_code_confirmed end |