Sha256: 1c29529c926f41fb8722a8840fa253f8afb0956c3c9001e74a2dd79bd23629dc

Contents?: true

Size: 478 Bytes

Versions: 4

Compression:

Stored size: 478 Bytes

Contents

# frozen_string_literal: true

module JWT
  module Claims
    class Expiration
      def initialize(leeway:)
        @leeway = leeway || 0
      end

      def verify!(context:, **_args)
        return unless context.payload.is_a?(Hash)
        return unless context.payload.key?('exp')

        raise JWT::ExpiredSignature, 'Signature has expired' if context.payload['exp'].to_i <= (Time.now.to_i - leeway)
      end

      private

      attr_reader :leeway
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jwt-2.9.3 lib/jwt/claims/expiration.rb
jwt-2.9.2 lib/jwt/claims/expiration.rb
jwt-2.9.1 lib/jwt/claims/expiration.rb
jwt-2.9.0 lib/jwt/claims/expiration.rb