class ApplicationDefaultCredentials (View source)

ApplicationDefaultCredentials obtains the default credentials for authorizing a request to a Google service.

Application Default Credentials are described here: https://developers.google.com/accounts/docs/application-default-credentials

This class implements the search for the application default credentials as described in the link.

It provides three factory methods:

  • get returns the computed credentials object

  • getSubscriber returns an AuthTokenSubscriber built from the credentials object

  • getMiddleware returns an AuthTokenMiddleware built from the credentials object

This allows it to be used as follows with GuzzleHttp\Client:

use Google\Auth\ApplicationDefaultCredentials;
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;

$middleware = ApplicationDefaultCredentials::getMiddleware(
    'https://www.googleapis.com/auth/taskqueue'
);
$stack = HandlerStack::create();
$stack->push($middleware);

$client = new Client([
    'handler' => $stack,
    'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/',
    'auth' => 'google_auth' // authorize all requests
]);

$res = $client->get('myproject/taskqueues/myqueue');

Methods

getSubscriber($scope = null, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains an AuthTokenSubscriber that uses the default FetchAuthTokenInterface implementation to use in this environment.

getMiddleware($scope = null, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null, string $quotaProject = null)

Obtains an AuthTokenMiddleware that uses the default FetchAuthTokenInterface implementation to use in this environment.

getCredentials(string|array $scope = null, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null, string $quotaProject = null, string|array $defaultScope = null)

Obtains the default FetchAuthTokenInterface implementation to use in this environment.

getIdTokenMiddleware(string $targetAudience, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains an AuthTokenMiddleware which will fetch an ID token to use in the Authorization header. The middleware is configured with the default FetchAuthTokenInterface implementation to use in this environment.

getProxyIdTokenMiddleware(string $targetAudience, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains an ProxyAuthTokenMiddleware which will fetch an ID token to use in the Authorization header. The middleware is configured with the default FetchAuthTokenInterface implementation to use in this environment.

getIdTokenCredentials(string $targetAudience, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains the default FetchAuthTokenInterface implementation to use in this environment, configured with a $targetAudience for fetching an ID token.

Details

static AuthTokenSubscriber getSubscriber($scope = null, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains an AuthTokenSubscriber that uses the default FetchAuthTokenInterface implementation to use in this environment.

If supplied, $scope is used to in creating the credentials instance if this does not fallback to the compute engine defaults.

Parameters

$scope
callable $httpHandler

callback which delivers psr7 request

array $cacheConfig

configuration for the cache when it's present

CacheItemPoolInterface $cache

A cache implementation, may be provided if you have one already available for use.

Return Value

AuthTokenSubscriber

Exceptions

DomainException

static AuthTokenMiddleware getMiddleware($scope = null, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null, string $quotaProject = null)

Obtains an AuthTokenMiddleware that uses the default FetchAuthTokenInterface implementation to use in this environment.

If supplied, $scope is used to in creating the credentials instance if this does not fallback to the compute engine defaults.

Parameters

$scope
callable $httpHandler

callback which delivers psr7 request

array $cacheConfig

configuration for the cache when it's present

CacheItemPoolInterface $cache

A cache implementation, may be provided if you have one already available for use.

string $quotaProject

specifies a project to bill for access charges associated with the request.

Return Value

AuthTokenMiddleware

Exceptions

DomainException

static CredentialsLoader getCredentials(string|array $scope = null, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null, string $quotaProject = null, string|array $defaultScope = null)

Obtains the default FetchAuthTokenInterface implementation to use in this environment.

Parameters

string|array $scope

the scope of the access request, expressed either as an Array or as a space-delimited String.

callable $httpHandler

callback which delivers psr7 request

array $cacheConfig

configuration for the cache when it's present

CacheItemPoolInterface $cache

A cache implementation, may be provided if you have one already available for use.

string $quotaProject

specifies a project to bill for access charges associated with the request.

string|array $defaultScope

The default scope to use if no user-defined scopes exist, expressed either as an Array or as a space-delimited string.

Return Value

CredentialsLoader

Exceptions

DomainException

static AuthTokenMiddleware getIdTokenMiddleware(string $targetAudience, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains an AuthTokenMiddleware which will fetch an ID token to use in the Authorization header. The middleware is configured with the default FetchAuthTokenInterface implementation to use in this environment.

If supplied, $targetAudience is used to set the "aud" on the resulting ID token.

Parameters

string $targetAudience

The audience for the ID token.

callable $httpHandler

callback which delivers psr7 request

array $cacheConfig

configuration for the cache when it's present

CacheItemPoolInterface $cache

A cache implementation, may be provided if you have one already available for use.

Return Value

AuthTokenMiddleware

Exceptions

DomainException

static ProxyAuthTokenMiddleware getProxyIdTokenMiddleware(string $targetAudience, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains an ProxyAuthTokenMiddleware which will fetch an ID token to use in the Authorization header. The middleware is configured with the default FetchAuthTokenInterface implementation to use in this environment.

If supplied, $targetAudience is used to set the "aud" on the resulting ID token.

Parameters

string $targetAudience

The audience for the ID token.

callable $httpHandler

callback which delivers psr7 request

array $cacheConfig

configuration for the cache when it's present

CacheItemPoolInterface $cache

A cache implementation, may be provided if you have one already available for use.

Return Value

ProxyAuthTokenMiddleware

Exceptions

DomainException

static CredentialsLoader getIdTokenCredentials(string $targetAudience, callable $httpHandler = null, array $cacheConfig = null, CacheItemPoolInterface $cache = null)

Obtains the default FetchAuthTokenInterface implementation to use in this environment, configured with a $targetAudience for fetching an ID token.

Parameters

string $targetAudience

The audience for the ID token.

callable $httpHandler

callback which delivers psr7 request

array $cacheConfig

configuration for the cache when it's present

CacheItemPoolInterface $cache

A cache implementation, may be provided if you have one already available for use.

Return Value

CredentialsLoader

Exceptions

DomainException
InvalidArgumentException