class JWT::Claims::Subject

The Subject class is responsible for validating the subject claim ('sub') in a JWT token.

Attributes

expected_subject[R]

Public Class Methods

new(expected_subject:) click to toggle source

Initializes a new Subject instance.

@param expected_subject [String] the expected subject for the JWT token.

# File lib/jwt/claims/subject.rb, line 10
def initialize(expected_subject:)
  @expected_subject = expected_subject.to_s
end

Public Instance Methods

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

Verifies the subject claim ('sub') in the JWT token.

@param context [Object] the context containing the JWT payload. @param _args [Hash] additional arguments (not used). @raise [JWT::InvalidSubError] if the subject claim is invalid. @return [nil]

# File lib/jwt/claims/subject.rb, line 20
def verify!(context:, **_args)
  sub = context.payload['sub']
  raise(JWT::InvalidSubError, "Invalid subject. Expected #{expected_subject}, received #{sub || '<none>'}") unless sub.to_s == expected_subject
end