Class: OmniAuth::Strategies::Quip

Inherits:
OAuth2
  • Object
show all
Defined in:
lib/omniauth/strategies/quip.rb

Overview

Omniauth strategy for Quip

Instance Method Summary collapse

Instance Method Details

#authorize_paramsObject



29
30
31
32
33
34
35
36
37
# File 'lib/omniauth/strategies/quip.rb', line 29

def authorize_params
  super.tap do |params|
    %w[client_options].each do |v|
      if request.params[v]
        params[v.to_sym] = request.params[v]
      end
    end
  end
end

#build_access_tokenObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/omniauth/strategies/quip.rb', line 39

def build_access_token
  verifier = request.params["code"]
  # Override regular client when using setup: proc
  if env['omniauth.params']['client_id'] && env['omniauth.params']['client_secret']
    client = ::OAuth2::Client.new(
      env['omniauth.params']['client_id'],
      env['omniauth.params']['client_secret'],
      site: options.client_options.site,
      authorize_url: options.client_options.authorize_url,
      token_url: options.client_options.token_url
    )
    client.auth_code.get_token(verifier, {:redirect_uri => callback_url}.merge(token_params.to_hash(:symbolize_keys => true)), deep_symbolize(options.auth_token_params))
  else
    super
  end
end

#callback_urlObject



79
80
81
# File 'lib/omniauth/strategies/quip.rb', line 79

def callback_url
  full_host + script_name + callback_path
end

#meObject



66
67
68
69
# File 'lib/omniauth/strategies/quip.rb', line 66

def me
  access_token.options[:mode] = :header
  @me ||= access_token.get('users/current', :headers => { 'Content-Type' => 'application/json' }).parsed
end

#raw_infoObject



62
63
64
# File 'lib/omniauth/strategies/quip.rb', line 62

def raw_info
  @raw_info ||= options[:extra_client_id_and_client_secret] ? { client_id: smart_client_id, client_secret: smart_client_secret } : {}
end

#smart_client_idObject



71
72
73
# File 'lib/omniauth/strategies/quip.rb', line 71

def smart_client_id
  @smart_client_id ||= env['omniauth.params']['client_id'] || env['omniauth.strategy'].options.client_id
end

#smart_client_secretObject



75
76
77
# File 'lib/omniauth/strategies/quip.rb', line 75

def smart_client_secret
  @smart_client_secret ||= env['omniauth.params']['client_secret'] || env['omniauth.strategy'].options.client_secret
end