Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Restringir acesso a API

Pessoal, boa tarde.

Eu desenvolvi uma API simples que lista as cidades de um determinado estado, então se eu acesso http://localhost:3000/cidades/SP, lista todas as cidades do estado de SP. A questão é que desejo fechar esta API de tal forma que um único domínio possa acessar, e utilizei no Express o seguinte código:

app.use(function(req, res, next) {
     res.header("Access-Control-Allow-Origin", "*");
     res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
     next();
 }); código aqui

Entendo que no lugar do * eu deva colocar o domínio que eu permita que acesse, mas mesmo eu setado um de teste, quando subo a aplicação, ela continua "aberta". Além disso, há algo mais que eu precise fazer no Node ? No mais, obrigado.

1 resposta
solução

Eu recomendaria você fazer uma validação por token (JWT) para permitir o acesso apenas para quem tem um token válido.

Para fazer o que você quer, você pode criar um middleware para pegar o IP da requisição e fazer o bloqueio. Aqui tem algumas dicas de como fazer isso:

https://stackoverflow.com/questions/35235117/restrict-access-to-node-js-using-express

Aqui tem outras dicas relativas a API

https://blog.jscrambler.com/setting-up-5-useful-middlewares-for-an-express-api/