Tengo un panel de administración alojado en el dominio admin.foo.com y la API alojada en el dominio api.foo.com
Tengo un punto final abierto GET - api.foo.com/all-products . No se requiere un encabezado de autenticación para acceder a este recurso. Pero solo se debe acceder a esto a través de la aplicación web alojada.
El usuario no debería poder copiar esta URL y pegarla en el navegador web y ver la respuesta json y tampoco debería poder acceder a los datos de este punto final a través de otra API o algo así.
Esta pregunta ya se hizo en StackOverflow, pero la respuesta dada es que esto no es posible debido a herramientas poderosas como postmon. Pero esto debería poder lograrse al menos hasta cierto punto utilizando las características de Node.js y express.js.
Diga verificar de dónde proviene la solicitud y luego bloquee el recurso algo así. ¿Cómo logro esto usando Node.js, Express.js?
lo que buscas es cors
const cors = require('cors'); app.use(cors({ origin: 'https://admin.foo.com' }));Más información: https://www.section.io/engineering-education/how-to-use-cors-in-nodejs-with-express/