module Google::Auth::BaseClient

BaseClient is a class used to contain common methods that are required by any Credentials Client, including AwsCredentials, ServiceAccountCredentials, and UserRefreshCredentials. This is a superclass of Signet::OAuth2::Client and has been created to create a generic interface for all credentials clients to use, including ones which do not inherit from Signet::OAuth2::Client.

Constants

AUTH_METADATA_KEY

Public Instance Methods

apply(a_hash, opts = {}) click to toggle source

Returns a clone of a_hash updated with the authentication token

# File lib/googleauth/base_client.rb, line 36
def apply a_hash, opts = {}
  a_copy = a_hash.clone
  apply! a_copy, opts
  a_copy
end
apply!(a_hash, opts = {}) click to toggle source

Updates a_hash updated with the authentication token

# File lib/googleauth/base_client.rb, line 28
def apply! a_hash, opts = {}
  # fetch the access token there is currently not one, or if the client
  # has expired
  fetch_access_token! opts if needs_access_token?
  a_hash[AUTH_METADATA_KEY] = "Bearer #{send token_type}"
end
expires_within?() click to toggle source
# File lib/googleauth/base_client.rb, line 65
def expires_within?
  raise NotImplementedError
end
needs_access_token?() click to toggle source

Whether the id_token or access_token is missing or about to expire.

# File lib/googleauth/base_client.rb, line 43
def needs_access_token?
  send(token_type).nil? || expires_within?(60)
end
notify_refresh_listeners() click to toggle source
# File lib/googleauth/base_client.rb, line 58
def notify_refresh_listeners
  listeners = defined?(@refresh_listeners) ? @refresh_listeners : []
  listeners.each do |block|
    block.call self
  end
end
on_refresh(&block) click to toggle source
# File lib/googleauth/base_client.rb, line 53
def on_refresh &block
  @refresh_listeners = [] unless defined? @refresh_listeners
  @refresh_listeners << block
end
updater_proc() click to toggle source

Returns a reference to the apply method, suitable for passing as a closure

# File lib/googleauth/base_client.rb, line 49
def updater_proc
  proc { |a_hash, opts = {}| apply a_hash, opts }
end

Private Instance Methods

fetch_access_token!() click to toggle source
# File lib/googleauth/base_client.rb, line 75
def fetch_access_token!
  raise NotImplementedError
end
token_type() click to toggle source
# File lib/googleauth/base_client.rb, line 71
def token_type
  raise NotImplementedError
end