Skip to main content

Passo 1: Como os Middlewares Funcionam

No framework Mad Rest, um middleware é uma classe com um método handle que intercepta requisições. O fluxo funciona assim:
  1. Requisição chega → Middleware intercepta
  2. Middleware verifica → Se inválida, retorna erro imediatamente
  3. Se válida → Chama $next($request) para continuar
  4. Controller executa → Processa a requisição normalmente

Passo 2: Middlewares Disponíveis no Projeto

O projeto já possui dois middlewares prontos para uso:

BasicAuthMiddleware

Usado para autenticação via chave REST simples, configurada no arquivo de configuração do sistema. Como funciona:
  • Verifica o header Authorization: Basic {rest_key}
  • A rest_key deve estar definida no arquivo de configuração
  • Ideal para acesso de aplicações confiáveis
Aplicando nas rotas:

Configurando Autenticação no Arquivo de Configuração

Para usar o BasicAuthMiddleware, você precisa definir a rest_key no arquivo de configuração:
Testando no Postman:
  1. Na aba Authorization, selecione “API Key”
  2. Na aba Headers, adicione:
    • Key: Authorization
    • Value: Basic sua_chave_rest_aqui
Teste BasicAuthMiddleware E inserindo uma chave inválida: Teste BasicAuthMiddleware chave errada
Importante: nunca exponha essa chave publicamente. Use chaves diferentes para desenvolvimento e produção.

BearerAuthMiddleware

Usado para autenticação via tokens Bearer JWT, integrado com o sistema de autenticação do Adianti Framework. Como funciona:
  • Verifica o header Authorization: Bearer {token}
  • Valida tokens JWT usando ApplicationAuthenticationService
  • Ideal para autenticação de usuários logados
  • Importante: Os tokens têm tempo de vida de 3 horas após serem gerados

Obtendo um Token de Sessão (Login)

Para usar o BearerAuthMiddleware, primeiro é necessário obter um token JWT válido através de login. O sistema já possui um controller pronto (ApiAuthController) com o método authenticate. Criando as rotas necessárias:
Após criar as rotas, é possível obter nosso token de sessão (login). No Postman, basta enviar uma requisição POST para /api/auth/login com o corpo da requisição contendo o login e senha do usuário. Login com credenciais válidas Note que é necessário fornecer informações de um usuário válido para obter um token de sessão. O método ApiAuthController::authenticate não é capaz de criar um usuário, ele apenas valida as credenciais de um usuário existente. Ao tentar obter um token com credenciais inválidas, recebemos um erro: Alt text

Testando Rotas Protegidas

Para usar o token: na aba Authorization, selecione “Bearer Token” e cole o token obtido: Teste com Bearer token válido Com um token inválido: Teste com Bearer token inválido
Dica: Você pode combinar múltiplos middlewares: 'middleware' => ['BasicAuthMiddleware', 'MeuMiddleware']

Passo 3: Criando Seus Próprios Middlewares

Você pode criar middlewares personalizados para necessidades específicas. Vamos criar um exemplo prático:

Exemplo: Middleware de Header Personalizado

Crie o arquivo app/middleware/TestKeyMiddleware.php:

Aplicando o Middleware Personalizado

Testando no Postman:
  1. Na aba Headers, adicione:
    • Key: X-API-Key
    • Value: minha-api-key-123
Teste Middleware personalizado Enviando a chave errada: Teste Middleware personalizado chave errada
Observação: Use middlewares estrategicamente. Nem todos os endpoints precisam de autenticação (ex: login, documentação pública).
Com middlewares bem configurados, sua API fica segura e organizada, permitindo controle fino sobre quem pode acessar cada endpoint.