A HTTPlug plugin to automatically refresh expired OAuth2 access tokens.
- PHP 8.2 or later.
- jwilsson/oauth2-client library.
Via Composer:
composer require jwilsson/auto-refresh-oauth2-token-plugin
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();
threshold
- Threshold in seconds for how close to the token's expiry time it should be considered expired. Default is 300 (5 minutes).