Class: SparkApi::Authentication::OAuth2Impl::GrantTypePassword

Inherits:
GrantTypeBase
  • Object
show all
Defined in:
lib/spark_api/authentication/oauth2_impl/grant_type_password.rb

Overview

OAuth2 authentication flow using username and password parameters for the user in the request. This implementation is geared towards authentication styles for native applications that need to use OAuth2

Constant Summary

Constants inherited from GrantTypeBase

SparkApi::Authentication::OAuth2Impl::GrantTypeBase::GRANT_TYPES

Instance Attribute Summary

Attributes inherited from GrantTypeBase

#client, #provider, #session

Instance Method Summary collapse

Methods inherited from GrantTypeBase

create

Constructor Details

#initialize(client, provider, session) ⇒ GrantTypePassword

Returns a new instance of GrantTypePassword.



8
9
10
# File 'lib/spark_api/authentication/oauth2_impl/grant_type_password.rb', line 8

def initialize(client, provider, session)
  super(client, provider, session)
end

Instance Method Details

#authenticateObject



11
12
13
14
15
16
17
18
# File 'lib/spark_api/authentication/oauth2_impl/grant_type_password.rb', line 11

def authenticate
  new_session = nil
  if needs_refreshing?
    new_session = refresh
  end
  return new_session unless new_session.nil?
  create_session(token_params)
end

#refreshObject



20
21
22
23
24
25
# File 'lib/spark_api/authentication/oauth2_impl/grant_type_password.rb', line 20

def refresh()
  GrantTypeRefresh.new(client,provider,session).authenticate
rescue ClientError => e
  SparkApi.logger.info("[oauth2] Refreshing token failed, the library will try and authenticate from scratch: #{e.message}")
  nil
end