Capa do Ebook gratuito Como criar APIs em NodeJS do básico ao avançado

Como criar APIs em NodeJS do básico ao avançado

Novo curso

149 páginas

Trabalhando com CORS em NodeJS

Capítulo 80

Tempo estimado de leitura: 3 minutos

Audio Icon

Ouça em áudio

0:00 / 0:00

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:

Continue em nosso aplicativo

Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.

ou continue lendo abaixo...
Download App

Baixar o aplicativo


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.

CORS é uma tecnologia que permite que sites acessem recursos de outros domínios. Em NodeJS, isso é possível ao usar um módulo específico para adicionar cabeçalhos CORS às respostas do servidor, permitindo que os navegadores acessem APIs de diferentes domínios.

Próximo capitúlo

Manipulação de erros em NodeJS

Arrow Right Icon
Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.