Estoy tratando de obtener la dirección IP del cliente en la función firebase usando javascript. ¿Por qué necesito IP? Para hacer una lista blanca de IP que puedan acceder a mis funciones.
mi objetivo: acceder a mi función por dirección IP
Traté de usar este método pero no funcionó para mí, me da 'indefinido':
exports.getIP = functions.https.onRequest(async (req, res) => { var call = req.ip console.log(call); res.send(call); }); exports.getIP = functions.https.onRequest(async (req, res) => { var call = req.headers['x-forwarded-for'] console.log(call); res.send(call); });Aquí cuando llamo a req.headers:
Los encabezados 'x-forwarded-for' y x-appengine-user-ip se agregarán cuando implemente sus funciones en la nube. Parece que está utilizando el emulador de funciones de Firebase que se ejecuta en localhost (ya que el encabezado del host es localhost:5001 ). Puede intentar implementar la función y registrar la IP.
El encabezado
X-Forwarded-For(XFF) es un encabezado estándar de facto para identificar la dirección IP de origen de un cliente que se conecta a un servidor web a través de un proxy HTTP o un balanceador de carga .
App Engine establece la
X-Appengine-User-IP.
Cuando emula funciones localmente, no hay proxy en el medio, por lo tanto, faltan esos encabezados.
Referencias: