CORS
O middleware CORS (Cross-Origin Resource Sharing) no Lithe configura os cabeçalhos CORS para permitir ou restringir o acesso a recursos de diferentes origens.
Instalando o Middleware CORS
Para instalar o middleware CORS, utilize o Composer:
composer require lithemod/cors
Você pode encontrar mais informações e o código fonte do módulo em github.com/lithemod/cors.
Usando o Middleware CORS
O middleware CORS no Lithe é responsável por configurar os cabeçalhos de Compartilhamento de Recursos entre Origens, permitindo ou restringindo o acesso aos recursos da sua aplicação a partir de diferentes origens. Para configurá-lo em sua aplicação, adicione-o usando o método use()
em uma instância de \Lithe\App
:
use Lithe\Middleware\Configuration\cors;
$app->use(cors());
Configurando o Middleware CORS
O middleware CORS pode ser configurado com os seguintes parâmetros:
- origins: Origem(ns) permitidas para acessar seus recursos. Pode ser uma string ou um array de strings. O padrão é '*' (qualquer origem).
- methods: Métodos HTTP permitidos. O padrão é 'GET, POST, OPTIONS'.
- headers: Cabeçalhos permitidos. Pode ser uma string ou um array de strings. O padrão é 'Origin, X-Requested-With, Content-Type, Accept'.
- credentials: Indica se credenciais (como cookies ou cabeçalhos de autorização) são permitidas. O padrão é true.
- maxAge: Tempo em segundos para o cache dos resultados de uma solicitação prévia. O padrão é null.
Exemplo de configuração:
$app->use(cors([
'origins' => ['https://example.com', 'https://another.com'],
'methods' => 'GET, POST, PUT, DELETE, OPTIONS',
'headers' => ['Content-Type', 'Authorization'],
'credentials' => true,
'maxAge' => 86400,
]));
Comportamento do Middleware
- Origens Permitidas: O middleware define o cabeçalho Access-Control-Allow-Origin com as origens permitidas.
- Métodos Permitidos: Define o cabeçalho Access-Control-Allow-Methods com os métodos HTTP permitidos.
- Cabeçalhos Permitidos: Define o cabeçalho Access-Control-Allow-Headers com os cabeçalhos permitidos.
- Credenciais: Define o cabeçalho Access-Control-Allow-Credentials para permitir credenciais se configurado como true.
- Duração do Cache: Define o cabeçalho Access-Control-Max-Age para especificar a duração do cache para a solicitação prévia.
- Tratamento de Solicitações OPTIONS: O middleware trata as solicitações OPTIONS (prévias) retornando um status 200 OK e encerrando a resposta.
Considerações
- Origens Específicas: Se você especificar origens concretas, apenas essas origens poderão acessar seus recursos.
- Métodos e Cabeçalhos HTTP: Configure os métodos e cabeçalhos de acordo com as necessidades da sua aplicação para garantir segurança e compatibilidade.
- Solicitações Prévias: O middleware garante que as solicitações OPTIONS sejam tratadas corretamente para suportar solicitações prévias.