Tipos de middleware
O middleware no desenvolvimento de software, especificamente em aplicativos da Web, atua como uma ponte entre a lógica principal do seu aplicativo e o mundo externo. É responsável por lidar com tarefas como:
*
Autenticação: Verificando as credenciais do usuário e concedendo acesso.
*
Autorização: Determinando quais recursos um usuário pode acessar.
*
log: Gravando eventos e solicitações de depuração e monitoramento.
*
Manuseio de erro: Pegando exceções e fornecendo respostas graciosas.
*
Solicitar validação: Garantir que os dados enviados pelo cliente sejam válidos.
*
Limitação da taxa: Prevendo solicitações excessivas de um único usuário ou endereço IP.
* Cache
: Armazenar dados frequentemente acessados para melhorar o desempenho.
*
cors (compartilhamento de recursos cruzados de origem): Ativando solicitações de segurança de origem cruzada.
Aqui está um colapso de alguns tipos comuns de middleware:
1. Com base no propósito: *
Middleware de autenticação: Verifica a identidade do usuário e concede acesso com base em credenciais.
*
Exemplo: Autenticação JWT (JSON Web Token), autenticação OAuth2.
*
Middleware de autorização: Determina os privilégios do usuário e permite o acesso a recursos específicos.
*
Exemplo: Controle de acesso baseado em função (RBAC), controle de acesso baseado em recursos (RBAC).
*
Middleware de log: Registra eventos e solicitações de depuração e monitoramento.
*
Exemplo: Winston, Pino, Morgan.
*
LIDADE DE ERRO Middleware: Pega exceções e lida com erros graciosamente.
*
Exemplo: Manipulador de erros interno do Express, manipuladores de erro personalizados.
*
Solicitar middleware de validação: Valida os dados enviados pelo cliente para garantir sua correção.
*
Exemplo: Joi, Validador Express.
*
Middleware limitante da taxa: Limita o número de solicitações que um usuário ou endereço IP pode ser feito dentro de um determinado prazo.
*
Exemplo: Limite de taxa expressa, limitadores de taxa baseados em Redis.
*
middleware de cache: Lojas frequentemente acessavam dados para recuperação mais rápida.
*
Exemplo: Redis, Memcached.
*
Middleware CORS: Permite solicitações de origem cruzada ao aplicar a segurança.
*
Exemplo: cors, expresso-cors.
*
Body Parsing Middleware: Paresas de solicitação de entrada em estruturas de dados utilizáveis.
*
Exemplo: Body-Parsser, Multer.
2. Com base na execução: *
Middleware de pré-processamento: Executa antes que a solicitação atinja o manipulador de rota.
*
Exemplo: Autenticação, autorização, registro, validação de solicitação.
*
Middleware pós-processamento: Executa após o manipulador de rota ter processado a solicitação.
*
Exemplo: Manuseio de erros, cache, log (para respostas).
3. Com base na implementação: *
middleware embutido: Middleware fornecido pela própria estrutura.
*
Exemplo: Middleware de manuseio de erros interno do Express, Body-Parser.
*
Middleware personalizado: Middleware desenvolvido pelo desenvolvedor para lidar com necessidades específicas.
*
Exemplo: Middleware para implementar uma estratégia de autenticação personalizada.
*
Middleware de terceiros: Middleware fornecido por bibliotecas externas.
*
Exemplo: Middleware de autenticação JWT, Middleware limitador de taxa.
Escolhendo o middleware certo: O tipo de middleware que você precisa dependerá dos requisitos específicos do seu aplicativo. Considere suas necessidades de segurança, desempenho, log e manuseio de erros.
Exemplo: Imagine que você está criando um aplicativo da web com autenticação do usuário. Você precisaria:
*
Middleware de autenticação: Para verificar as credenciais do usuário e gerar uma sessão ou token.
*
Middleware de autorização: Para determinar quais recursos um usuário pode acessar com base em sua função.
*
LIDADE DE ERRO Middleware: Para lidar com possíveis erros durante a autenticação ou autorização.
Ao usar estrategicamente o middleware, você pode melhorar a segurança, o desempenho e a manutenção do seu aplicativo da web.