Passo 1: Como os Middlewares Funcionam
No framework Mad Rest, um middleware é uma classe com um métodohandle que intercepta requisições. O fluxo funciona assim:
- Requisição chega → Middleware intercepta
- Middleware verifica → Se inválida, retorna erro imediatamente
- Se válida → Chama
$next($request)para continuar - 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_keydeve estar definida no arquivo de configuração - Ideal para acesso de aplicações confiáveis
Configurando Autenticação no Arquivo de Configuração
Para usar oBasicAuthMiddleware, você precisa definir a rest_key no arquivo de configuração:
- Na aba Authorization, selecione “API Key”
- Na aba Headers, adicione:
- Key:
Authorization - Value:
Basic sua_chave_rest_aqui
- Key:
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:
/api/auth/login com o corpo da requisição contendo o login e senha do usuário.
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:
Testando Rotas Protegidas
Para usar o token: na aba Authorization, selecione “Bearer Token” e cole o token obtido:
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 arquivoapp/middleware/TestKeyMiddleware.php:
Aplicando o Middleware Personalizado
- Na aba Headers, adicione:
- Key:
X-API-Key - Value:
minha-api-key-123
- Key:
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.