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.



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

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



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

def code
  @code
end

#grant_typeObject

Returns the value of attribute grant_type.



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

def grant_type
  @grant_type
end

Instance Method Details

#load_sessionObject

Load the current OAuth session returns - active OAuthSession or nil



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

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



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

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

#save_session(session) ⇒ Object

Save current session session - active OAuthSession



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

def save_session(session)
  
end

#session_timeoutObject

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



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

def session_timeout
  86400 # 1.day
end