Sha256: 8a13696a49334b85410e98bc1f7a478d2cc904187c8af45d77f01d8cd6c730d7
Contents?: true
Size: 969 Bytes
Versions: 3
Compression:
Stored size: 969 Bytes
Contents
# frozen_string_literal: false module AppleAuth class JWTConditions include Conditions CONDITIONS = [ AudCondition, ExpCondition, IatCondition, IssCondition ].freeze attr_reader :user_identity, :decoded_jwt def initialize(user_identity, decoded_jwt) @user_identity = user_identity @decoded_jwt = decoded_jwt end def validate! JWT::ClaimsValidator.new(decoded_jwt).validate! && validate_sub! && jwt_conditions_validate! rescue JWT::InvalidPayload => e raise JWTValidationError, e.message end private def validate_sub! return true if user_identity && user_identity == decoded_jwt['sub'] raise JWTValidationError, 'Not valid Sub' end def jwt_conditions_validate! conditions_results = CONDITIONS.map do |condition| condition.new(decoded_jwt).validate! end conditions_results.all? { |value| value == true } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
apple_auth-1.1.0 | lib/apple_auth/helpers/jwt_conditions.rb |
apple_auth-1.0.0 | lib/apple_auth/helpers/jwt_conditions.rb |
apple_auth-0.1.0 | lib/apple_auth/helpers/jwt_conditions.rb |