class JWT::Claims::Required

The Required class is responsible for validating that all required claims are present in a JWT token.

Attributes

required_claims[R]

Public Class Methods

new(required_claims:) click to toggle source

Initializes a new Required instance.

@param required_claims [Array<String>] the list of required claims.

# File lib/jwt/claims/required.rb, line 10
def initialize(required_claims:)
  @required_claims = required_claims
end

Public Instance Methods

verify!(context:, **_args) click to toggle source

Verifies that all required claims are present in the JWT payload.

@param context [Object] the context containing the JWT payload. @param _args [Hash] additional arguments (not used). @raise [JWT::MissingRequiredClaim] if any required claim is missing. @return [nil]

# File lib/jwt/claims/required.rb, line 20
def verify!(context:, **_args)
  required_claims.each do |required_claim|
    next if context.payload.is_a?(Hash) && context.payload.key?(required_claim)

    raise JWT::MissingRequiredClaim, "Missing required claim #{required_claim}"
  end
end