refreshTokenIfNeeded method
inherited
Refreshes the authentication token if needed.
This method checks if the current token is expired and refreshes it
if auto-refresh is enabled (KUMIHO_ENABLE_AUTO_REFRESH=true).
Returns true if a refresh occurred, false otherwise.
Implementation
Future<bool> refreshTokenIfNeeded() async {
// Check if auto-refresh is enabled
final autoRefresh = _envFlag(AuthEnvVars.enableAutoRefresh);
if (!autoRefresh) return false;
// Load current credentials
_credentials ??= loadCredentials();
if (_credentials == null) return false;
// Check if refresh is needed
if (_credentials!.isValid) return false;
// Perform refresh
final refreshed = await autoRefreshCredentials(_credentials!, forceRefresh: true);
if (refreshed != null && refreshed != _credentials) {
_credentials = refreshed;
_token = _envFlag(AuthEnvVars.useControlPlaneToken)
? refreshed.controlPlaneToken ?? refreshed.idToken
: refreshed.idToken;
_tokenSource = 'auto-refreshed';
return true;
}
return false;
}