jwilsson / auto-refresh-oauth2-token-plugin
HTTPlug plugin to automatically refresh expired OAuth2 access tokens.
v3.1.0
2024-01-21 12:13 UTC
Requires
- php: ^8.2
- jwilsson/oauth2-client: ^4.0
- php-http/client-common: ^2.3
- php-http/message: ^1.11
- php-http/promise: ^1.1
- psr/http-message: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- mockery/mockery: ^1.4
- nyholm/psr7: ^1.4
- pestphp/pest: ^2.0
- php-coveralls/php-coveralls: ^2.0
- php-http/mock-client: ^1.5
- phpstan/phpstan: ^1.3
README
A HTTPlug plugin to automatically refresh expired OAuth2 access tokens.
Requirements
- PHP 8.2 or later.
- jwilsson/oauth2-client library.
Installation
Via Composer:
composer require jwilsson/auto-refresh-oauth2-token-plugin
Usage
This assumes you have an instantiated Refresh Token grant and Token object from the jwilsson/oauth2-client library. A full Token object complete with access token, refresh token, and expiry information is expected.
use Http\Client\Common\PluginClient; use JWilsson\AutoRefreshOAuth2TokenPlugin; $autoRefreshOAuth2TokenPlugin = new AutoRefreshOAuth2TokenPlugin( $token, $refreshTokenGrant, $options, // Options for the plugin, see below $refreshTokenOptions // Additional options to pass to RefreshToken::requestAccessToken() ); $pluginClient = new PluginClient( $myHttpClient, [$autoRefreshOAuth2TokenPlugin] ); $response = $pluginClient->sendRequest($myRequest); // Remember to grab the token object after each call, it might have been updated with new information $refreshedToken = $autoRefreshOAuth2TokenPlugin->getToken();
Options
threshold
- Threshold in seconds for how close to the token's expiry time it should be considered expired. Default is 300 (5 minutes).