Class: SparkApi::Authentication::BaseOAuth2Provider
- Inherits:
-
Object
- Object
- SparkApi::Authentication::BaseOAuth2Provider
- 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:
- 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
Direct Known Subclasses
OAuth2Impl::CLIProvider, SimpleProvider, SingleSessionProvider
Instance Attribute Summary collapse
-
#code ⇒ Object
Requirements for authorization_code grant type.
-
#grant_type ⇒ Object
Returns the value of attribute grant_type.
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ BaseOAuth2Provider
constructor
A new instance of BaseOAuth2Provider.
-
#load_session ⇒ Object
Load the current OAuth session returns - active OAuthSession or nil.
-
#redirect(url) ⇒ Object
Application using the client must handle user redirect for user authentication.
-
#save_session(session) ⇒ Object
Save current session session - active OAuthSession.
-
#session_timeout ⇒ Object
Provides a default session time out returns - the session timeout length (in seconds).
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
#code ⇒ Object
Requirements for authorization_code grant type
203 204 205 |
# File 'lib/spark_api/authentication/oauth2.rb', line 203 def code @code end |
#grant_type ⇒ Object
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_session ⇒ Object
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_timeout ⇒ Object
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 |