Class: OAuth2::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/oauth2/client.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client_id, client_secret, opts = {}) ⇒ Client

Instantiate a new OAuth 2.0 client using the client ID and client secret registered to your application.

Options:

:site

Specify a base URL for your OAuth 2.0 client.

:authorize_path

Specify the path to the authorization endpoint.

:authorize_url

Specify a full URL of the authorization endpoint.

:access_token_path

Specify the path to the access token endpoint.

:access_token_url

Specify the full URL of the access token endpoint.



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/oauth2/client.rb', line 30

def initialize(client_id, client_secret, opts = {})
  adapter         = opts.delete(:adapter)
  self.id         = client_id
  self.secret     = client_secret
  self.site       = opts.delete(:site) if opts[:site]
  self.options    = opts
  self.connection = Faraday::Connection.new(site)
  if adapter && adapter != :test
    connection.build { |b| b.adapter(adapter) }
  end
end

Instance Attribute Details

#connectionObject

Returns the value of attribute connection.



17
18
19
# File 'lib/oauth2/client.rb', line 17

def connection
  @connection
end

#idObject

Returns the value of attribute id.



17
18
19
# File 'lib/oauth2/client.rb', line 17

def id
  @id
end

#optionsObject

Returns the value of attribute options.



17
18
19
# File 'lib/oauth2/client.rb', line 17

def options
  @options
end

#secretObject

Returns the value of attribute secret.



17
18
19
# File 'lib/oauth2/client.rb', line 17

def secret
  @secret
end

#siteObject

Returns the value of attribute site.



17
18
19
# File 'lib/oauth2/client.rb', line 17

def site
  @site
end

Class Method Details

.default_connection_adapterObject



6
7
8
9
# File 'lib/oauth2/client.rb', line 6

def default_connection_adapter
  warn '[DEPRECATED] OAuth2::Client#default_connection_adapter is deprecated, use Faraday.default_adapter instead. Will be removed in 0.1.0'
  Faraday.default_adapter
end

.default_connection_adapter=(adapter) ⇒ Object



11
12
13
14
# File 'lib/oauth2/client.rb', line 11

def default_connection_adapter=(adapter)
  warn '[DEPRECATED] OAuth2::Client#default_connection_adapter is deprecated, use Faraday.default_adapter instead. Will be removed in 0.1.0'
  Faraday.default_adapter = adapter
end

Instance Method Details

#access_token_url(params = nil) ⇒ Object



47
48
49
50
# File 'lib/oauth2/client.rb', line 47

def access_token_url(params = nil)
  path = options[:access_token_url] || options[:access_token_path] || "/oauth/access_token"
  connection.build_url(path, params).to_s
end

#authorize_url(params = nil) ⇒ Object



42
43
44
45
# File 'lib/oauth2/client.rb', line 42

def authorize_url(params = nil)
  path = options[:authorize_url] || options[:authorize_path] || "/oauth/authorize"
  connection.build_url(path, params).to_s
end

#request(verb, url, params = {}, headers = {}) ⇒ Object

Makes a request relative to the specified site root.



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/oauth2/client.rb', line 53

def request(verb, url, params = {}, headers = {})
  if verb == :get
    resp = connection.run_request(verb, url, nil, headers) do |req|
      req.params.update(params)
    end
  else
    resp = connection.run_request(verb, url, params, headers)
  end
  case resp.status
    when 200...201 then ResponseString.new(resp)
    when 401
      e = OAuth2::AccessDenied.new("Received HTTP 401 during request.")
      e.response = resp
      raise e
    else
      e = OAuth2::HTTPError.new("Received HTTP #{resp.status} during request.")
      e.response = resp
      raise e
  end
end

#web_serverObject



74
# File 'lib/oauth2/client.rb', line 74

def web_server; OAuth2::Strategy::WebServer.new(self) end