softonic / guzzle-oauth2-middleware
Guzzle middleware with OAuth2 integration
Installs: 2 594 679
Dependents: 4
Suggesters: 0
Security: 0
Stars: 9
Watchers: 8
Forks: 7
Open Issues: 4
Requires
- php: >=7.0
- league/oauth2-client: ^2.2
- psr/cache: ^1.0|^2.0|^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.4
- phpunit/phpunit: ^6.0
README
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.
Installation
To install, use composer:
composer require softonic/guzzle-oauth2-middleware
Usage
<?php $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( $provider, $config, $cache, ['base_uri' => 'https://foo.bar/'] ); $response = $client->request('POST', 'qux);
Testing
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
License
The Apache 2.0 license. Please see LICENSE for more information.