module Fog::Brightbox::OAuth2

Public Instance Methods

request_access_token(connection, credentials) click to toggle source

This builds the simplest form of requesting an access token based on the arguments passed in

@param [Fog::Core::Connection] connection @param [CredentialSet] credentials

@return [Excon::Response]

# File lib/fog/brightbox/oauth2.rb, line 16
def request_access_token(connection, credentials)
  token_strategy = credentials.best_grant_strategy

  header_content = "#{credentials.client_id}:#{credentials.client_secret}"
  encoded_credentials = Base64.encode64(header_content).chomp

  connection.request(
    :path => "/token",
    :expects  => 200,
    :headers  => {
      "Authorization" => "Basic #{encoded_credentials}",
      "Content-Type" => "application/json"
    },
    :method   => "POST",
    :body     => Fog::JSON.encode(token_strategy.authorization_body_data)
  )
end

Private Instance Methods

update_credentials_from_response(credentials, response) click to toggle source

This updates the current credentials if passed a valid response

@param [CredentialSet] credentials Credentials to update @param [Excon::Response] response Response object to parse value from

# File lib/fog/brightbox/oauth2.rb, line 163
def update_credentials_from_response(credentials, response)
  response_data = Fog::JSON.decode(response.body)
  credentials.update_tokens(response_data["access_token"], response_data["refresh_token"], response_data["expires_in"])
end