| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- namespace Middlewares;
- use Psr\Http\Message\ServerRequestInterface;
- use React\Http\Message\Response;
- use Libs\ResponseLib;
- class CorsMiddleware
- {
- public function __invoke(ServerRequestInterface $request, callable $next)
- {
- // Configurações de CORS permissivas
- $corsHeaders = [
- 'Access-Control-Allow-Origin' => '*', // Permite qualquer origem
- 'Access-Control-Allow-Methods' => '*', // Permite qualquer método HTTP
- 'Access-Control-Allow-Headers' => '*', // Permite qualquer cabeçalho
- // Removido Access-Control-Allow-Credentials para evitar conflitos
- ];
- // Lida com requisições OPTIONS (preflight)
- if ($request->getMethod() === 'OPTIONS') {
- return new Response(
- 200,
- $corsHeaders
- );
- }
- // Chama o próximo middleware/controlador
- $response = $next($request);
- // Adiciona cabeçalhos CORS à resposta
- foreach ($corsHeaders as $header => $value) {
- if ($value) {
- $response = $response->withHeader($header, $value);
- }
- }
- return $response;
- }
- }
|