validate method

  1. @override
ValidationResult validate(
  1. Request request,
  2. Map<String, dynamic> jwtPayload
)
override

Método obligatorio que implementa la lógica de validación

request - El request HTTP actual jwtPayload - El payload decodificado del JWT

Retorna ValidationResult indicando éxito o falla con mensaje

Implementation

@override
ValidationResult validate(Request request, Map<String, dynamic> jwtPayload) {
  // El desarrollador tiene control total sobre la estructura del JWT
  final userRole = jwtPayload['role'] as String?;
  final isActive = jwtPayload['active'] as bool? ?? false;
  final permissions = jwtPayload['permissions'] as List<dynamic>? ?? [];

  // Lógica personalizada del desarrollador
  if (userRole != 'admin') {
    return ValidationResult.invalid('User must be an administrator');
  }

  if (!isActive) {
    return ValidationResult.invalid('Administrator account is inactive');
  }

  if (!permissions.contains('admin_access')) {
    return ValidationResult.invalid('Missing admin access permission');
  }

  return ValidationResult.valid();
}