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 login 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.



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

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



199
200
201
# File 'lib/spark_api/authentication/oauth2.rb', line 199

def code
  @code
end

#grant_typeObject

Returns the value of attribute grant_type.



200
201
202
# File 'lib/spark_api/authentication/oauth2.rb', line 200

def grant_type
  @grant_type
end

Instance Method Details

#load_sessionObject

Load the current OAuth session returns - active OAuthSession or nil



230
231
232
# File 'lib/spark_api/authentication/oauth2.rb', line 230

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).



220
221
222
# File 'lib/spark_api/authentication/oauth2.rb', line 220

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

#save_session(session) ⇒ Object

Save current session session - active OAuthSession



236
237
238
# File 'lib/spark_api/authentication/oauth2.rb', line 236

def save_session(session)
  
end

#session_timeoutObject

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



242
243
244
# File 'lib/spark_api/authentication/oauth2.rb', line 242

def session_timeout
  86400 # 1.day
end