Copied!

ScopedAccessTokenMiddleware is a Guzzle Middleware that adds an Authorization header provided by a closure.

The closure returns an access token, taking the scope, either a single string or an array of strings, as its value. If provided, a cache will be used to preserve the access token for a given lifetime.

Requests will be accessed with the authorization header:

'authorization' 'Bearer '

CloneableInstantiable
Constants
public Google\Auth\Middleware\ScopedAccessTokenMiddleware::DEFAULT_CACHE_LIFETIME = 1500
Methods
public __construct(callable $tokenFunc, $scopes, ?array $cacheConfig = NULL, ?Psr\Cache\CacheItemPoolInterface $cache = NULL)
 

Creates a new ScopedAccessTokenMiddleware.

  • param callable $tokenFunc a token generator function
  • param string[]|string $scopes the token authentication scopes
  • param array|null $cacheConfig configuration for the cache when it's present
  • param \CacheItemPoolInterface|null $cache an implementation of CacheItemPoolInterface
public __invoke(callable $handler)
 

Updates the request with an Authorization header when auth is 'scoped'.

E.g this could be used to authenticate using the AppEngine AppIdentityService.

use google\appengine\api\app_identity\AppIdentityService; use Google\Auth\Middleware\ScopedAccessTokenMiddleware; use GuzzleHttp\Client; use GuzzleHttp\HandlerStack;

$scope = 'https://www.googleapis.com/auth/taskqueue' $middleware = new ScopedAccessTokenMiddleware( 'AppIdentityService::getAccessToken', $scope, [ 'prefix' => 'Google\Auth\ScopedAccessToken::' ], $cache = new Memcache() ); $stack = HandlerStack::create(); $stack->push($middleware);

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

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

  • param callable $handler
  • return \Closure
Properties
private $cache = NULL
 
  • var ?\CacheItemPoolInterface
private $cacheConfig = NULL
 
  • var array
private $maxKeyLength = 64
 
  • var int
private $scopes = NULL
 
  • var string[]|string
private $tokenFunc = NULL
 
  • var callable
Methods
private fetchToken()
 

Determine if token is available in the cache, if not call tokenFunc to fetch it.

  • return string
private getCachedValue( $k)
 

Gets the cached value if it is present in the cache when that is available.

  • param mixed $k
  • return mixed
private getCacheKey()
 
  • return string
private getFullCacheKey( $key)
 
  • param null|string $key
  • return null|string
private setCachedValue( $k, $v)
 

Saves the value in the cache when that is available.

  • param mixed $k
  • param mixed $v
  • return mixed
© 2025 Bruce Wells
Search Namespaces \ Classes
Configuration