12. Trabalhando com CORS em NodeJS

Página 80

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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

8113. Manipulação de erros em NodeJS

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text