programing

express.js에서 요청을 발생시키는 도메인을 어떻게 얻습니까?

muds 2023. 7. 25. 21:21
반응형

express.js에서 요청을 발생시키는 도메인을 어떻게 얻습니까?

express.js를 사용하고 있는데 통화를 시작하는 도메인을 알아야 합니다.이것은 간단한 코드입니다.

app.get(
    '/verify_license_key.json',
    function( req, res ) {
        // do something

에서 도메인을 가져오려면 어떻게 해야 합니까?req또는res목적어?제 말은 API가 호출되었는지 알아야 합니다.somesite.example또는someothersite.example나는 콘솔을 시도했습니다.dir 둘 다.req그리고.res하지만 저는 거기서 전혀 알지 못했고, 문서도 읽었지만 도움이 되지 않았습니다.

당신은 헤더에서 그것을 검색해야 합니다.

var host = req.get('host');

HTTP 1.0에서는 선택 사항이지만 1.1에서는 필요합니다.또한 앱은 항상 자체 요구사항을 적용할 수 있습니다.


만약 이것이 교차 출처 요청을 지원하기 위한 것이라면, 당신은 대신에Origin표제의

var origin = req.get('origin');

일부 교차 출발지 요청은 "사전" 요청을 통해 유효성을 확인해야 합니다.

req.options('/route', function (req, res) {
    var origin = req.get('origin');
    // ...
});

클라이언트의 IP를 찾는 경우 다음을 사용하여 검색할 수 있습니다.

var userIP = req.socket.remoteAddress;

서버가 프록시 뒤에 있는 경우 프록시의 IP가 제공될 수 있습니다.사용자의 IP를 가져올 수 있는지 여부는 프록시가 전달하는 정보에 따라 달라집니다.그러나 일반적으로 헤더에도 포함됩니다.

다음 대신:

var host = req.get('host');
var origin = req.get('origin');

다음을 사용할 수도 있습니다.

var host = req.headers.host;
var origin = req.headers.origin;

Express 4.x에서 사용할 수 있습니다.req.hostname포트 없이 도메인 이름을 반환합니다. 예:

// Host: "example.com:3000"
req.hostname
// => "example.com"

참조: http://expressjs.com/en/4x/api.html#req.hostname

req.get('host')이제는 더 이상 사용되지 않습니다. 사용하면 얻을 수 있습니다.Undefined.

사용하다,

    req.header('Origin');
    req.header('Host');
    // this method can be used to access other request headers like, 'Referer', 'User-Agent' etc.

2022년, 나는 express v4.17.1을 사용합니다. 다음 결과를 얻습니다.

var host = req.get("host"); // 작동, localhost:3000

var host = requ.vmdk.host; // works, localhost:3000

var host = requq.vmx; // works, localhost

var origin = requq.get'; // 작동하지 않음, 정의되지 않음

var origin = requq.vmdk.dll; // 작동하지 않음, 정의되지 않음

enter image description here

언급URL : https://stackoverflow.com/questions/18498726/how-do-i-get-the-domain-originating-the-request-in-express-js

반응형