DEV Community

Cover image for [php-curtas] Resolvendo  Cors Origins no Lumen
Tadeu Barbosa
Tadeu Barbosa

Posted on

[php-curtas] Resolvendo Cors Origins no Lumen

Estou a uma dia tentando resolver um problema no Lumen e, agora que finalmente consegui resolver, resolvi trazer pra vocês!

Quem nunca teve problemas com CORS que atire a primeira pedra.

Depois de revirar toda a internet atrás de uma solução, tentar [e falhar miseravelmente] setar os headers na aplicação e tudo mais que você possa imaginar... Encontrei essa resposta no Stak Overflow.

Como resolver:

Criei um arquivo chamado CorsMiddleware dentro do diretório app/Http/Middlewares, com o seguinte conteúdo:

<?php

namespace App\Http\Middleware;

class CorsMiddleware
{
    public function handle($request, \Closure $next)
    {
        if ($request->isMethod('OPTIONS')) {
            $response = response('', 200);
        } else {
            $response = $next($request);
        }
        $response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE');
        $response->header('Access-Control-Allow-Headers', $request->header('Access-Control-Request-Headers'));
        $response->header('Access-Control-Allow-Origin', '*');
        return $response;
    }
}
Enter fullscreen mode Exit fullscreen mode

Esse middleware irá retornar 200 caso o método requisitado seja OPTIONS.

Em seguida basta registar o seu middleware no arquivo bootstrap/app.php:

 $app->middleware([
     App\Http\Middleware\CorsMiddleware::class
 ]);
Enter fullscreen mode Exit fullscreen mode

Pronto! Agora sua aplicação poderá ser acessada por outras origins.
Espero ter ajudado, até a próxima!

Discussion (0)