class AppleAuth::JWTConditions

Constants

CONDITIONS

Attributes

decoded_jwt[R]
user_identity[R]

Public Class Methods

new(user_identity, decoded_jwt) click to toggle source
# File lib/apple_auth/helpers/jwt_conditions.rb, line 16
def initialize(user_identity, decoded_jwt)
  @user_identity = user_identity
  @decoded_jwt = decoded_jwt
end

Public Instance Methods

validate!() click to toggle source
# File lib/apple_auth/helpers/jwt_conditions.rb, line 21
def validate!
  JWT::ClaimsValidator.new(decoded_jwt).validate! && validate_sub! && jwt_conditions_validate!
rescue JWT::InvalidPayload => e
  raise JWTValidationError, e.message
end

Private Instance Methods

jwt_conditions_validate!() click to toggle source
# File lib/apple_auth/helpers/jwt_conditions.rb, line 35
def jwt_conditions_validate!
  conditions_results = CONDITIONS.map do |condition|
    condition.new(decoded_jwt).validate!
  end
  conditions_results.all? { |value| value == true }
end
validate_sub!() click to toggle source
# File lib/apple_auth/helpers/jwt_conditions.rb, line 29
def validate_sub!
  return true if user_identity && user_identity == decoded_jwt['sub']

  raise JWTValidationError, 'Not valid Sub'
end