Class: OAuth2::Client
- Inherits:
-
Object
- Object
- OAuth2::Client
- Defined in:
- lib/oauth2/client.rb
Overview
The OAuth2::Client class
Instance Attribute Summary (collapse)
-
- (Object) connection
The Faraday connection object.
-
- (Object) id
readonly
Returns the value of attribute id.
-
- (Object) options
Returns the value of attribute options.
-
- (Object) secret
readonly
Returns the value of attribute secret.
-
- (Object) site
Returns the value of attribute site.
Instance Method Summary (collapse)
-
- (Object) auth_code
The Authorization Code strategy.
-
- (Object) authorize_url(params = nil)
The authorize endpoint URL of the OAuth2 provider.
-
- (Client) initialize(client_id, client_secret, opts = {}) {|builder| ... }
constructor
Instantiate a new OAuth 2.0 client using the Client ID and Client Secret registered to your application.
-
- (Object) password
The Resource Owner Password Credentials strategy.
-
- (Object) request(verb, url, opts = {}) {|req| ... }
Makes a request relative to the specified site root.
-
- (Object) token_url(params = nil)
The token endpoint URL of the OAuth2 provider.
Constructor Details
- (Client) initialize(client_id, client_secret, opts = {}) {|builder| ... }
Instantiate a new OAuth 2.0 client using the Client ID and Client Secret registered to your application.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/oauth2/client.rb', line 25 def initialize(client_id, client_secret, opts={}, &block) @id = client_id @secret = client_secret @site = opts.delete(:site) ssl = opts.delete(:ssl) @options = { :authorize_url => '/oauth/authorize', :token_url => '/oauth/token', :token_method => :post, :connection_opts => {}, :connection_build => block, :max_redirects => 5, :raise_errors => true }.merge(opts) @options[:connection_opts][:ssl] = ssl if ssl end |
Instance Attribute Details
- (Object) connection
The Faraday connection object
49 50 51 52 53 54 55 56 57 |
# File 'lib/oauth2/client.rb', line 49 def connection @connection ||= begin conn = Faraday.new(site, [:connection_opts]) conn.build do |b| [:connection_build].call(b) end if [:connection_build] conn end end |
- (Object) id (readonly)
Returns the value of attribute id
6 7 8 |
# File 'lib/oauth2/client.rb', line 6 def id @id end |
- (Object) options
Returns the value of attribute options
7 8 9 |
# File 'lib/oauth2/client.rb', line 7 def @options end |
- (Object) secret (readonly)
Returns the value of attribute secret
6 7 8 |
# File 'lib/oauth2/client.rb', line 6 def secret @secret end |
- (Object) site
Returns the value of attribute site
7 8 9 |
# File 'lib/oauth2/client.rb', line 7 def site @site end |
Instance Method Details
- (Object) auth_code
The Authorization Code strategy
117 118 119 |
# File 'lib/oauth2/client.rb', line 117 def auth_code @auth_code ||= OAuth2::Strategy::AuthCode.new(self) end |
- (Object) authorize_url(params = nil)
The authorize endpoint URL of the OAuth2 provider
62 63 64 |
# File 'lib/oauth2/client.rb', line 62 def (params=nil) connection.build_url([:authorize_url], params).to_s end |
- (Object) password
The Resource Owner Password Credentials strategy
124 125 126 |
# File 'lib/oauth2/client.rb', line 124 def password @password ||= OAuth2::Strategy::Password.new(self) end |
- (Object) request(verb, url, opts = {}) {|req| ... }
Makes a request relative to the specified site root.
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/oauth2/client.rb', line 84 def request(verb, url, opts={}) url = self.connection.build_url(url, opts[:params]).to_s response = connection.run_request(verb, url, opts[:body], opts[:headers]) do |req| yield(req) if block_given? end response = Response.new(response) case response.status when 200...299 response when 300...307 opts[:redirect_count] ||= 0 opts[:redirect_count] += 1 return response if opts[:redirect_count] > [:max_redirects] if response.status == 303 verb = :get opts.delete(:body) end request(verb, response.headers['location'], opts) when 400...599 e = Error.new(response) raise e if opts[:raise_errors] || [:raise_errors] response.error = e response else raise Error.new(response), "Unhandled status code value of #{response.status}" end end |
- (Object) token_url(params = nil)
The token endpoint URL of the OAuth2 provider
69 70 71 |
# File 'lib/oauth2/client.rb', line 69 def token_url(params=nil) connection.build_url([:token_url], params).to_s end |