generateClientSecret static method

String generateClientSecret({
  1. required String teamId,
  2. required String clientId,
  3. required String keyId,
  4. required String privateKey,
})

Implementation

static String generateClientSecret({
  required String teamId,
  required String clientId,
  required String keyId,
  required String privateKey,
}) {
  // This is a simplified version - you'll need proper JWT implementation
  final headers = {
    'alg': 'ES256',
    'kid': keyId,
  };

  final claims = {
    'iss': teamId,
    'iat': DateTime.now().millisecondsSinceEpoch ~/ 1000,
    'exp':
        DateTime.now().add(Duration(days: 30)).millisecondsSinceEpoch ~/ 1000,
    'aud': 'https://appleid.apple.com',
    'sub': clientId,
  };

  // In practice, you'd use a proper JWT library to sign with ES256
  // This is just a placeholder - implement proper JWT signing
  return _signJWT(headers, claims, privateKey);
}