Estoy usando express.js y necesito saber el dominio que origina la llamada. Este es el código simple
app.get(
'/verify_license_key.json',
function( req, res ) {
// do something
¿Cómo obtengo el dominio del objeto req
o res
? Quiero decir, necesito saber si la API fue llamada por somesite.com o someothersite.com. Intenté hacer un console.dir de ambos req
y, res
pero no tengo idea de allí, también leí la documentación pero no me ayudó.
javascript
node.js
express
Nicola Peluchetti
fuente
fuente
req.host
oreq.get('host')
expresa documentosreq.headers["x-forwarded-for"] || req.connection.remoteAddress
x- fordered -for cubriría sus bases detrás de un proxy, balanceador de carga ...Respuestas:
Tienes que recuperarlo del
HOST
encabezado .var host = req.get('host');
Es opcional con HTTP 1.0, pero requerido por 1.1. Y la aplicación siempre puede imponer un requisito propio.
Si esto es para admitir solicitudes de origen cruzado , en su lugar, usaría el
Origin
encabezado.var origin = req.get('origin');
Tenga en cuenta que algunas solicitudes de origen cruzado requieren validación a través de una solicitud de " verificación previa" :
req.options('/route', function (req, res) { var origin = req.get('origin'); // ... });
Si está buscando la IP del cliente, puede recuperarla con:
var userIP = req.socket.remoteAddress;
message.socket
.socket.remoteAddress
Tenga en cuenta que, si su servidor está detrás de un proxy, esto probablemente le dará la IP del proxy. La posibilidad de obtener la IP del usuario depende de la información que transmita el proxy. Pero normalmente también estará en los encabezados.
fuente
'user-agent': 'WordPress/3.6; http://localhost/wordpress_clean'
debo analizarlo?En vez de:
var host = req.get('host'); var origin = req.get('origin');
también puedes usar:
var host = req.headers.host; var origin = req.headers.origin;
fuente
undefined
En Express 4.x puede usar
req.hostname
, que devuelve el nombre de dominio, sin puerto. es decir:// Host: "example.com:3000" req.hostname // => "example.com"
Ver: http://expressjs.com/en/4x/api.html#req.hostname
fuente
Recientemente enfrenté un problema al obtener el encabezado de solicitud 'Origen', luego encontré esta pregunta. Pero bastante confundido con los resultados,
req.get('host')
está en desuso, por eso darUndefined
. Utilizar,req.header('Origin'); req.header('Host'); // this method can be used to access other request headers like, 'Referer', 'User-Agent' etc.
fuente