Sha256: 36e525092a1ceb5c165722da8e02c0b6ecb897d28f20652508de0c898329a738

Contents?: true

Size: 816 Bytes

Versions: 4

Compression:

Stored size: 816 Bytes

Contents

# frozen_string_literal: true

require "rotp"

####
#
# Copied with love from https://github.com/devise-two-factor/devise-two-factor
#
####

module RailsBase
  module UserHelper
    module Totp
      extend ActiveSupport::Concern

      class Error < StandardError; end
      class NotRequired < Error; end

      included do
        serialize :otp_backup_codes, Array
      end

      def self.included(base)
        base.include(ConsumeMethodOptions)
        base.include(BackupMethodOptions)
        base.extend(ClassOptions)
      end

      def reset_otp!
        self.otp_secret = nil
        self.temp_otp_secret = nil
        self.consumed_timestep = nil
        self.mfa_otp_enabled = false
        self.otp_backup_codes = []
        self.last_mfa_otp_login = nil

        save!
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_base-0.82.0 app/models/rails_base/user_helper/totp.rb
rails_base-0.81.1 app/models/rails_base/user_helper/totp.rb
rails_base-0.81.0 app/models/rails_base/user_helper/totp.rb
rails_base-0.80.0 app/models/rails_base/user_helper/totp.rb