configureDio static method

void configureDio(
  1. Dio dio,
  2. String environment
)

Configure Dio with SSL pinning for the given environment

Implementation

static void configureDio(Dio dio, String environment) {
  final sslConfig = SSLPinningConfig.getSSLPinsForEnvironment(environment);

  // Configure the HTTP client adapter with custom certificate validation
  dio.httpClientAdapter = IOHttpClientAdapter(
    createHttpClient: () {
      final client = HttpClient();

      // Set up certificate validation callback
      client.badCertificateCallback = (X509Certificate cert, String host, int port) {
        // Only validate for our pinned domains
        if (host != sslConfig.domain) {
          // For non-pinned domains, use default validation
          return false;
        }

        // Extract and validate the certificate's public key hash
        return _validateCertificate(cert, sslConfig.pins, host);
      };

      return client;
    },
  );
}