Guzzle middleware with OAuth2 integration

2.0.0 2020-12-16 09:55 UTC

This package is auto-updated.

Last update: 2024-04-16 19:22:27 UTC


Latest Version Software License Build Status Coverage Status Quality Score Total Downloads Average time to resolve an issue Percentage of issues still open

This package provides middleware for guzzle for handling OAuth2 token negotiation and renewal on expiry transparently. It accecpts PHP League's OAuth 2.0 Clients.


To install, use composer:

composer require softonic/guzzle-oauth2-middleware


$options = [
    'clientId' => 'myclient',
    'clientSecret' => 'mysecret'

// Any provider extending League\OAuth2\Client\Provider\AbstractProvider will do
$provider = new Softonic\OAuth2\Client\Provider\Softonic($options);

// Send OAuth2 parameters and use token_options for any other parameters your OAuth2 provider needs
$config = ['grant_type' => 'client_credentials', 'scope' => 'myscope', 'token_options' => ['audience' => 'test_audience']];

// Any implementation of PSR-6 Cache will do
$cache = new \Symfony\Component\Cache\Adapter\FilesystemAdapter();

$client = \Softonic\OAuth2\Guzzle\Middleware\ClientBuilder::build(
    ['base_uri' => 'https://foo.bar/']
$response = $client->request('POST', 'qux);


softonic/guzzle-oauth2-middleware has a PHPUnit test suite and a coding style compliance test suite using PHP CS Fixer.

To run the tests, run the following command from the project folder.

$ docker-compose run test

To run interactively using PsySH:

$ docker-compose run psysh


The Apache 2.0 license. Please see LICENSE for more information.