Class: Setsuzoku::Service::WebService::AuthStrategies::OAuthStrategy

Inherits:
Setsuzoku::Service::WebService::AuthStrategy show all
Extended by:
T::Helpers, T::Sig
Includes:
StrategyCanUseTokens
Defined in:
lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb

Overview

The API OAuth Authentication Interface definition. Any Plugin that implements this must implement all methods required for OAuth.

Defines all necessary methods for the OAuth auth strategy.

Instance Attribute Summary

Attributes included from AuthStrategy

#credential, #service

Attributes included from HasConfigContext

#config_context

Class Method Summary collapse

Instance Method Summary collapse

Methods included from StrategyCanUseTokens

#auth_credential_valid?, #new_token!

Methods included from AuthStrategy

#auth_credential_valid?, #initialize, #set_credential!

Methods included from HasConfigContext

#get_from_context

Class Method Details

.credential_classObject



22
23
24
# File 'lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb', line 22

def self.credential_class
  Setsuzoku::Service::WebService::Credentials::OAuthCredential
end

.required_instance_methodsObject



18
19
20
# File 'lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb', line 18

def self.required_instance_methods
  []
end

.token_valid_forObject



26
27
28
# File 'lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb', line 26

def self.token_valid_for
  24.hours
end

Instance Method Details

#auth_headersHash

Oauth auth headers required to perform authenticated requests.



37
38
39
40
41
42
43
# File 'lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb', line 37

def auth_headers
  {
    authorization: {
      token: self.credential.token
    }
  }
end

#new_credential!(**args) ⇒ Object



52
53
54
55
56
# File 'lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb', line 52

def new_credential!(**args)
  # get a token object based on the code retrieved from login
  get_token!(params(grant_type: 'authorization_code',
                    code: args[:code]), :new_token)
end

#refresh_expired_token!Object



62
63
64
65
# File 'lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb', line 62

def refresh_expired_token!
  get_token!(params(grant_type: 'refresh_token',
                    refresh_token: self.credential.refresh_token), :refresh_token)
end