Class: SparkApi::Authentication::BaseOAuth2Provider

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

Overview

OAuth2 configuration provider for applications

Applications planning to use OAuth2 authentication with the API must extend this class as part of the client configuration, providing values for the following attributes:

@authorization_uri - User oauth2  page for the Spark platform
@access_uri - Location of the OAuth2 access token resource for the api.  OAuth2 code and 
  credentials will be sent to this uri to generate an access token.
@redirect_uri - Application uri to redirect to 
@client_id - OAuth2 provided application identifier
@client_secret - OAuth2 provided password for the client id

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ BaseOAuth2Provider

Returns a new instance of BaseOAuth2Provider.



206
207
208
209
210
211
# File 'lib/spark_api/authentication/oauth2.rb', line 206

def initialize(opts={})
  Configuration::OAUTH2_KEYS.each do |key|
    send("#{key}=", opts[key]) if opts.include? key
  end
  @grant_type = :authorization_code
end

Instance Attribute Details

#codeObject

Requirements for authorization_code grant type



203
204
205
# File 'lib/spark_api/authentication/oauth2.rb', line 203

def code
  @code
end

#grant_typeObject

Returns the value of attribute grant_type.



204
205
206
# File 'lib/spark_api/authentication/oauth2.rb', line 204

def grant_type
  @grant_type
end

Instance Method Details

#load_sessionObject

Load the current OAuth session returns - active OAuthSession or nil



234
235
236
# File 'lib/spark_api/authentication/oauth2.rb', line 234

def load_session
  nil
end

#redirect(url) ⇒ Object

Application using the client must handle user redirect for user authentication. For command line applications, this method is called prior to initial client requests so that

the process can notify the user to go to the url and retrieve the access_code for the app.

In a web based web application, this method can be mostly ignored. However, the web based application is then responsible for ensuring the code is saved to the the provider instance

prior to any client requests are performed (or the error below will be thrown).



224
225
226
# File 'lib/spark_api/authentication/oauth2.rb', line 224

def redirect(url)
  raise "To be implemented by client application"
end

#save_session(session) ⇒ Object

Save current session session - active OAuthSession



240
241
242
# File 'lib/spark_api/authentication/oauth2.rb', line 240

def save_session(session)
  
end

#session_timeoutObject

Provides a default session time out returns - the session timeout length (in seconds)



246
247
248
# File 'lib/spark_api/authentication/oauth2.rb', line 246

def session_timeout
  86400 # 1.day
end