Como solucionar o problema de CORS no Framework Lumen

Com o bloqueio de CORS, fica impossível fazer qualquer tipo de requisição para a API.

Publicado em

Você acabou de desenvolver sua API com o Lumen, testou todos os possíveis endpoints no Insominia Rest e está tudo certo, porém, quando sobe à aplicação para o ambiente de produção e consome a sua API, começa a se deparar com problemas de CORS.

Abaixo vamos deixar uma das possíveis soluções, talvez a mais rápida. Vale lembrar que você precisa adaptar a solução para atender apenas a sua aplicação e não deixar qualquer requisição ter acesso a sua API. Mas antes vamos entender o que é de fato um CORS.

CORS (Cross-Origin Resource Sharing) é uma política de segurança implementada nos navegadores para controlar solicitações HTTP entre diferentes origens (domínios). Os prós incluem a proteção contra solicitações não autorizadas de origens não confiáveis, melhorando a segurança da web. No entanto, os contras envolvem a necessidade de configurar corretamente as permissões de CORS no servidor, o que pode ser complexo, e pode limitar a interoperabilidade entre diferentes domínios, exigindo precauções adicionais para desenvolvimento de APIs e aplicativos web.

Para resolver o nosso problema, tudo o que precisamos fazer é abrir o arquivo routes\web.php  e inserir as informações abaixo.
 

<?php

//Liste quem pode ter acesso as requisições
header('Access-Control-Allow-Origin: *');

//Defina os verbos aceitos
header('Access-Control-Allow-Methods: GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS');

//Defina os cabeçalhos aceitos
header('Access-Control-Allow-Headers: Content-Type, X-Auth-Token, Origin, Authorization');

/** @var \Laravel\Lumen\Routing\Router $router */

$router->get('/', function () use ($router) {
    return $router->app->version();
});

//..Suas rotas

$router->options(
    '/{any:.*}',
    [
        function () {
            return response(['status' => 'OK']);
        }
    ]
);

 

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção

Todos os nossos cursos em promoção

Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção