class Setsuzoku::Service::WebService::AuthStrategies::OAuthStrategy

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.

Public Class Methods

credential_class() click to toggle source
# 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_methods() click to toggle source
# File lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb, line 18
def self.required_instance_methods
  []
end
token_valid_for() click to toggle source
# File lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb, line 26
def self.token_valid_for
  24.hours
end

Public Instance Methods

auth_headers() click to toggle source

Oauth auth headers required to perform authenticated requests.

@return [Hash] the auth headers.

# 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) click to toggle source
# 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!() click to toggle source
# 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

Private Instance Methods

params(params) click to toggle source
# File lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb, line 86
def params(params)
  if params.key?(:redirect_uri)
    params.merge(client_id: self.credential.client_id,
                 client_secret: self.credential.client_secret
    )
  else
    params.merge(client_id: self.credential.client_id,
                 client_secret: self.credential.client_secret,
                 redirect_uri: self.credential.redirect_url
    )
  end
end
uses_token_by_default?() click to toggle source

OAuth auth_strategy always uses a token.

@return [Boolean] if the auth_strategy uses a token or not.

# File lib/setsuzoku/service/web_service/auth_strategies/o_auth_strategy.rb, line 76
def uses_token_by_default?
  true
end