DEV Community

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

Posted on

3 1

[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!

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more