Capítulo 12: Trabalhando com CORS em NodeJS

CORS, ou Cross-Origin Resource Sharing, é uma tecnologia crucial para desenvolvedores web modernos. É uma maneira de permitir que um site acesse recursos de outro site, mesmo que estejam em domínios diferentes. Em termos simples, é uma política que determina se um navegador deve permitir que um script em execução em uma página acesse recursos em outro domínio.

Ao trabalhar com APIs em NodeJS, é comum encontrar problemas de CORS. Isso ocorre porque, por padrão, a política de mesma origem (Same-Origin Policy) do navegador impede que sites acessem recursos de outros sites. Esta política é uma medida de segurança importante, mas pode ser um obstáculo ao desenvolver APIs que devem ser acessíveis em diferentes domínios.

Para contornar esse problema, podemos usar o módulo CORS do NodeJS. Este módulo adiciona os cabeçalhos CORS necessários às respostas do servidor, permitindo que os navegadores acessem a API de diferentes domínios.

Para começar a trabalhar com o CORS em NodeJS, primeiro você precisa instalar o módulo. Isso pode ser feito facilmente com o npm, o gerenciador de pacotes do NodeJS. Basta abrir o terminal e digitar o seguinte comando:


npm install cors

Uma vez instalado, você pode começar a usar o módulo em seu código. Primeiro, você precisa importá-lo em seu arquivo. Isso é feito com o comando require:


const cors = require('cors')

Em seguida, você precisa usar o middleware CORS em seu aplicativo. Isso é feito com o método use do objeto de aplicativo Express:


app.use(cors())

Com isso, seu servidor NodeJS está configurado para aceitar solicitações de qualquer domínio. No entanto, em um ambiente de produção, você provavelmente desejará restringir o acesso a certos domínios. Isso pode ser feito passando um objeto de opções para a função cors:


app.use(cors({
  origin: 'http://meusite.com'
}))

Esta configuração permitirá que apenas o domínio 'http://meusite.com' acesse sua API.

Além do domínio de origem, existem muitas outras opções que você pode configurar. Por exemplo, você pode especificar quais métodos HTTP são permitidos com a opção methods:


app.use(cors({
  origin: 'http://meusite.com',
  methods: ['GET', 'POST']
}))

Esta configuração permitirá que o domínio 'http://meusite.com' faça solicitações GET e POST para sua API, mas não PUT ou DELETE, por exemplo.

Outra opção útil é a credentials. Se definida como true, isso permitirá que os navegadores incluam cookies nas solicitações para sua API. Isso é útil se você estiver usando sessões ou autenticação baseada em token:


app.use(cors({
  origin: 'http://meusite.com',
  methods: ['GET', 'POST'],
  credentials: true
}))

Trabalhar com CORS em NodeJS é essencial para criar APIs seguras e acessíveis. Embora possa parecer complicado no início, o módulo CORS torna o processo bastante simples. Com apenas algumas linhas de código, você pode configurar sua API para aceitar solicitações de diferentes domínios, enquanto ainda mantém o controle sobre quais domínios têm acesso e quais métodos HTTP eles podem usar.

Em resumo, o CORS é uma parte crucial da segurança na web e um tópico importante para qualquer desenvolvedor de NodeJS entender. Ao dominar o CORS, você estará um passo mais perto de criar APIs robustas e seguras em NodeJS.

Agora responda o exercício sobre o conteúdo:

O que é CORS e como ele é usado em NodeJS?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Manipulação de erros em NodeJS

Próxima página do Ebook Gratuito:

81Manipulação de erros em NodeJS

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto