class OmniAuth::Strategies::NexaasID

Constants

DEFAULT_SCOPE

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/omniauth/strategies/nexaas_id.rb, line 10
def initialize(*args)
  @api_token = nil
  super
end

Public Instance Methods

list_emails?() click to toggle source
# File lib/omniauth/strategies/nexaas_id.rb, line 54
def list_emails?
  options[:list_emails] || options['list_emails'] ||
    options[:client_options][:list_emails] # TODO: remove this line
end
raw_info() click to toggle source
# File lib/omniauth/strategies/nexaas_id.rb, line 45
def raw_info
  @raw_info ||= build_raw_info
end
request_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/nexaas_id.rb, line 49
def request_phase
  options[:authorize_params][:scopes] = options['scope'] || DEFAULT_SCOPE
  super
end

Protected Instance Methods

add_email_list_to(acc) click to toggle source
# File lib/omniauth/strategies/nexaas_id.rb, line 72
def add_email_list_to(acc)
  acc['emails'] = retrieve_emails(acc['id'])
  acc
end
build_access_token() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/nexaas_id.rb, line 61
def build_access_token
  if (token = super) && token.params
    @api_token = token.params['api_token']
  end
  token
end
build_raw_info() click to toggle source
# File lib/omniauth/strategies/nexaas_id.rb, line 68
def build_raw_info
  add_email_list_to(access_token.get('/api/v1/profile').parsed)
end
retrieve_emails(id) click to toggle source
# File lib/omniauth/strategies/nexaas_id.rb, line 77
def retrieve_emails(id)
  return unless list_emails? # guard: access endpoint only if allowed
  emails = access_token.get('/api/v1/profile/emails').parsed
  got = emails['id']
  raise "unexpected id #{got} retrieving e-mails for #{id}" unless got == id
  emails['emails']

rescue StandardError => err
  warn(err)
  nil
end