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.

    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');

    • return Closure
    Properties
    private $cache
     


    • var CacheItemPoolInterface
    private $cacheConfig
     


    • var array configuration
    private $maxKeyLength
    private $scopes
     


    • var array|string
    private $tokenFunc
     


    • 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.

    private getCacheKey()
     


    • return string
    private getFullCacheKey( $key)
    private setCachedValue( $k, $v)
     
    Saves the value in the cache when that is available.

    © 2020 Bruce Wells
    Search Namespaces \ Classes
    ConfigurationNumbers (0-9.) only