Sha256: e6716e84048f40d520c2509102f394da0f7fe2d7a2ccae45cf4cf34cad2dc194
Contents?: true
Size: 845 Bytes
Versions: 2
Compression:
Stored size: 845 Bytes
Contents
# frozen_string_literal: true module JWT module Claims class Numeric def self.verify!(payload:, **_args) return unless payload.is_a?(Hash) new(payload).verify! end NUMERIC_CLAIMS = %i[ exp iat nbf ].freeze def initialize(payload) @payload = payload.transform_keys(&:to_sym) end def verify! validate_numeric_claims true end private def validate_numeric_claims NUMERIC_CLAIMS.each do |claim| validate_is_numeric(claim) if @payload.key?(claim) end end def validate_is_numeric(claim) return if @payload[claim].is_a?(::Numeric) raise InvalidPayload, "#{claim} claim must be a Numeric value but it is a #{@payload[claim].class}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jwt-2.9.1 | lib/jwt/claims/numeric.rb |
jwt-2.9.0 | lib/jwt/claims/numeric.rb |