validateScopes static method

List<String> validateScopes(
  1. List<String> scopes
)

Validates OAuth2 scopes

Implementation

static List<String> validateScopes(List<String> scopes) {
  final issues = <String>[];

  if (scopes.isEmpty) {
    issues.add('At least one scope must be specified');
    return issues;
  }

  for (final scope in scopes) {
    if (scope.isEmpty) {
      issues.add('Scope cannot be empty');
      continue;
    }

    if (scope.contains(' ')) {
      issues.add('Individual scope cannot contain spaces: "$scope"');
    }

    // Check for valid characters (letters, numbers, underscore, hyphen, colon, period)
    final scopeRegex = RegExp(r'^[a-zA-Z0-9_\-:.]+$');
    if (!scopeRegex.hasMatch(scope)) {
      issues.add('Scope contains invalid characters: "$scope"');
    }
  }

  return issues;
}