Sha256: 84cedcd438f56577c61121bb16800e4582d9c325d7cef4f19571d2e62eda1687

Contents?: true

Size: 911 Bytes

Versions: 8

Compression:

Stored size: 911 Bytes

Contents

require 'rest-client'

module CognitoTokenVerifier
  class Config
    attr_accessor :aws_region, :user_pool_id, :token_use, :allow_expired_tokens

    def initialize
      @aws_region = nil
      @user_pool_id = nil
      @token_use = 'all'
      @allow_expired_tokens = false
    end

    def any_token_use?
      ['all', 'any', ['id', 'access']].any?{|usage| usage == token_use }
    end

    def allow_expired_tokens?
      allow_expired_tokens
    end

    def jwks
      begin
        raise ConfigSetupError.new(self) unless aws_region.present? and user_pool_id.present?
        @jwks ||= JSON.parse(RestClient.get(jwk_url))
      rescue RestClient::Exception, JSON::JSONError => e
        raise JWKFetchError
      end
    end

    def iss
      "https://cognito-idp.#{aws_region}.amazonaws.com/#{user_pool_id}"
    end

    private

    def jwk_url
      "#{iss}/.well-known/jwks.json"
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
cognito_token_verifier-0.7.0 lib/cognito_token_verifier/config.rb
cognito_token_verifier-0.6.0 lib/cognito_token_verifier/config.rb
cognito_token_verifier-0.5.0 lib/cognito_token_verifier/config.rb
cognito_token_verifier-0.4.0 lib/cognito_token_verifier/config.rb
cognito_token_verifier-0.3.2 lib/cognito_token_verifier/config.rb
cognito_token_verifier-0.3.1 lib/cognito_token_verifier/config.rb
cognito_token_verifier-0.3.0 lib/cognito_token_verifier/config.rb
cognito_token_verifier-0.2.0 lib/cognito_token_verifier/config.rb