Class: OmniAuth::Strategies::NaranyaId

Inherits:
OAuth
  • Object
show all
Defined in:
lib/omniauth/strategies/naranya_id.rb

Instance Method Summary collapse

Instance Method Details

#configure_sdk!Object

Configures the SDK’s key + secret using the strategy’s configured key and secret



94
95
96
97
98
99
100
# File 'lib/omniauth/strategies/naranya_id.rb', line 94

def configure_sdk!
  ::NaranyaId.configure do |config|
    %w(consumer_key consumer_secret debug_oauth).each do |method|
      config.send "#{method}=".to_sym, options.send(method.to_sym)
    end
  end
end

#consumerObject

Override para habilitar/deshabilitar el output de debuggeo de HTTP:



17
18
19
20
21
22
23
24
25
# File 'lib/omniauth/strategies/naranya_id.rb', line 17

def consumer
  consumer = ::OAuth::Consumer.new(options.consumer_key, options.consumer_secret, options.client_options)
  consumer.http.open_timeout = options.open_timeout if options.open_timeout
  consumer.http.read_timeout = options.read_timeout if options.read_timeout
  
  # Se habilita el output sólo si en las opciones debug_oauth es true:
  consumer.http.set_debug_output($stderr)           if options.debug_oauth
  consumer
end

#consumer_key_and_secret_present?Boolean

Indicates whether the consumer key and secret where configured in the strategy initializer

Returns:

  • (Boolean)


89
90
91
# File 'lib/omniauth/strategies/naranya_id.rb', line 89

def consumer_key_and_secret_present?
  options.consumer_key && options.consumer_secret
end

#raw_infoObject

Provee la informacion consultada del usuario vía el API de Naranya ID ()



70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/omniauth/strategies/naranya_id.rb', line 70

def raw_info
  @raw_info ||= begin
    configure_sdk! if sdk_key_or_secret_missing? and consumer_key_and_secret_present?
    u = ::NaranyaId::User.find_one(
      token:  access_token.params[:oauth_token],
      secret: access_token.params[:oauth_token_secret]
    )
    u.attributes.with_indifferent_access
  rescue ::Errno::ETIMEDOUT
    raise ::Timeout::Error
  end
end

#request_phaseObject

Override de método ‘request_phase` para enviar el parámetro de lang/locale:



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/omniauth/strategies/naranya_id.rb', line 28

def request_phase
  request_token = consumer.get_request_token({:oauth_callback => callback_url}, options.request_params)
  session['oauth'] ||= {}
  session['oauth'][name.to_s] = {'callback_confirmed' => request_token.callback_confirmed?, 'request_token' => request_token.token, 'request_secret' => request_token.secret}

  # Setup de parametros de lang/locale:
  authorize_params = options[:authorize_params].merge locale_params

  if request_token.callback_confirmed?
    redirect request_token.authorize_url authorize_params
  else
    redirect request_token.authorize_url(authorize_params.merge(:oauth_callback => callback_url))
  end

rescue ::Timeout::Error => e
  fail!(:timeout, e)
rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e
  fail!(:service_unavailable, e)
end

#sdk_key_or_secret_missing?Boolean

Indicates if the SDK’s api key + secret are missing

Returns:

  • (Boolean)


84
85
86
# File 'lib/omniauth/strategies/naranya_id.rb', line 84

def sdk_key_or_secret_missing?
  !(::NaranyaId.consumer_key && ::NaranyaId.consumer_secret)
end