Sha256: 346907fd8fad3d3dc0d68a49befc7afae51faaed806e20aa46f3950ee3848030

Contents?: true

Size: 481 Bytes

Versions: 56

Compression:

Stored size: 481 Bytes

Contents

require 'rotp'
module EtFakeCcd
  module Validator
    class OtpValidator < ActiveModel::EachValidator
      def initialize(secret: ::EtFakeCcd.config.microservice_secret, **args)
        self.otp = ROTP::TOTP.new(secret)
        super
      end

      def validate_each(record, attribute, value)
        record.errors.add :one_time_password, 'Invalid oneTimePassword' unless otp.verify(value, drift_behind: 15)
      end

      private

      attr_accessor :otp
    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
et_fake_ccd-2.1.0 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-2.0.0 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.11 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.10 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.9 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.8 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.6 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.5 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.4 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.3 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.2 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.1 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.1.0 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.0.8 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.0.7 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.0.6 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.0.5 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.0.4 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.0.3 lib/et_fake_ccd/validator/otp_validator.rb
et_fake_ccd-1.0.2 lib/et_fake_ccd/validator/otp_validator.rb