forceRefreshToken method

Future<void> forceRefreshToken()
inherited

Force refresh the authentication token.

This method forces a token refresh regardless of expiry status. Requires credentials with a valid refresh token.

Throws TokenRefreshError if refresh fails.

Implementation

Future<void> forceRefreshToken() async {
  _credentials ??= loadCredentials();
  if (_credentials == null) {
    throw const TokenRefreshError('No credentials available for refresh');
  }
  if (_credentials!.refreshToken.isEmpty) {
    throw const TokenRefreshError('No refresh token available');
  }

  final refreshed = await autoRefreshCredentials(_credentials!, forceRefresh: true);
  if (refreshed != null) {
    _credentials = refreshed;
    _token = _envFlag(AuthEnvVars.useControlPlaneToken)
        ? refreshed.controlPlaneToken ?? refreshed.idToken
        : refreshed.idToken;
    _tokenSource = 'force-refreshed';
  } else {
    throw const TokenRefreshError('Token refresh failed');
  }
}