class OmniAuth::Strategies::Swagger

Constants

OPTION_SPECIFICATION
OPTION_SUBDOMAIN
OPTION_UID

Public Instance Methods

authorize_params() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/swagger.rb, line 26
def authorize_params
  super.tap do |params|
    passthru_params = @definition.authorize_params || []
    if @definition.scopes != nil && @definition.scopes.any?
      passthru_params << 'scope'
    end
    passthru_params.each do |v|
      if request.params[v]
        params[v.to_sym] = request.params[v]
      end
    end
  end
end
callback_url() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/swagger.rb, line 40
def callback_url
  url = super
  url + (url.index('?') ? '&' : '?') + "#{options[:provider_param]}=#{provider_name}"
end
setup_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/swagger.rb, line 20
def setup_phase
  load_definition
  @definition.load_options(options)
  super
end

Protected Instance Methods

load_definition() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 118
def load_definition
  specification.security_definitions.each_pair do |name, definition|
    if definition.type == 'oauth2'
      @definition = OmniAuth::Swagger::OAuth2Definition.new(definition, specification, provider_options)
    end
  end
  nil
end
load_specification() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 131
def load_specification
  provider_options[OPTION_SPECIFICATION].call
end
provider_lookup() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 86
def provider_lookup
  @provider_lookup ||= begin
                         if lookup_opt = options[:provider_lookup]
                           if lookup_opt.kind_of? Class
                             lookup_opt.new
                           else
                             lookup_opt
                           end
                         else
                           OmniAuth::Swagger::DefaultProviderLookup.new(options[:providers])
                         end
                       end
end
provider_name() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 73
def provider_name
  @provider_name ||= begin
                       unless nm = request.params[options[:provider_param]]
                         raise OmniAuth::Error, "Unable to determine provider"
                       end
                       nm.to_sym
                     end
end
provider_options() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 82
def provider_options
  @provider_options ||= provider_lookup.get(provider_name, env)
end
raw_info() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 104
def raw_info
  if uid_options
    api_options = {@definition.oauth2_key => {token: access_token.token}}
    if provider_options[OPTION_SUBDOMAIN]
      api_options[:subdomain] = provider_options[OPTION_SUBDOMAIN]
    end
    api_class = Apiture.build_api(specification)
    api = api_class.new(api_options)
    api.__send__(uid_options.api_operation, uid_options.api_params).body
  else
    {}
  end
end
specification() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 127
def specification
  @specification ||= load_specification
end
uid_options() click to toggle source
# File lib/omniauth/strategies/swagger.rb, line 100
def uid_options
  @uid_options ||= OmniAuth::Swagger::UIDOptions.from_options(provider_options[OPTION_UID])
end