request가 express와 함께 node.js에서 HTTPS를 사용하는지 확인하는 방법이 있습니까? 내가 Heroku를 사용하고있어 자신의 certs로드 균형 조정기 및 개별 웹 서버/인스턴스에 설치되어 있다고 가정합니다.express.js 처리기에서 HTTPS를 사용하고 있는지 확인할 수 있습니까?
답변
당신의 nginx를 구성 할 경우, 다른 처리기에 대한 코드 그것에 대한 확인 및 설정 플래그의 nginx 설정에서 다음
proxy_set_header X-Forwarded-Proto https;
그리고이 매개 변수를 추가합니다.
mainapp.use(function(req, res) {
if (req.header('X-Forwaded-Proto') == 'https') {
req.is_ssl = true;
}
});
Heroku를 사용하여 실제로 솔루션으로 작동했습니다. – MonkeyBonkey
Express에는 http 및 https 서버에 대해 다른 구성이 있습니다. 같은 앱에서 둘 다 듣고 있습니까? 아니면 그냥 하나 듣고?
당신은 당신이 동일한 파일에서 모두 제공하려면 응용 프로그램 = HTTP 및 APP2 = HTTPS 뭔가를 설정할 수 각 서버 유형 http://expressjs.com/guide.html
를 설정하는 방법에 대한 익스프레스 가이드를 확인할 수 있습니다.
app.get ('/ server', function (req, res) {console.log ('http request')})); app2.get ('/ server', function (req, res) {console.log ('https 요청')});
동일한 앱에서 둘 다 듣고 있지만 인증서가로드 밸런서에 설치되어 있으므로 https 서버에 별도의 앱을 설정하지 않습니다. 따라서 SSL을 사용하여 "free"를 얻으므로 app.get http 메소드에 대한 https 요청이 여전히 작동합니다. 함수에서 요청을 검토하여 요청이 https를 통해 요청되었는지 확인해야합니다. – MonkeyBonkey
console.log (req)를 사용하고 요청이 콘솔에 인쇄 될 때이를 검사하십시오. 필요한 값을 찾아 req 변수를 통해 사용할 수 있습니다. 즉. req.headers –
Chris 안녕하세요, 불행히도 heroku에서 오는 req 객체에서 https를 사용하는지 여부를 나타내는 항목이 표시되지 않습니다. 내가 본 유일한 후보는 "remotePort"입니다.하지만 heroku가 443 이외의 다른 포트에 동적으로 매핑 된 것 같아서 신뢰할만한 것으로 보이지 않습니다. 특정 부동산에 대해 생각하고 있었습니까? – MonkeyBonkey
여기 같은 것이 nginx는 내 경우에 ssl을 처리하므로 정보 클라이언트 측을 잡아야합니다. 첫 페이지로드시 프로토콜을 추출하여 노드 async로 보냅니다. 신뢰할 수있는 솔루션이 될 수 있지만, 생산에 놀라 울 정도로 잘 작동하지 않을
console.log(location.href.split('://')[0]);
생각.
아직 서버 측 솔루션을 찾으셨습니까?
안타깝게도 클라이언트 측 스크립트를 실행할 수 없기 때문에 나머지 API 서비스가 있습니다. 나는 계속 찾아보고 내가 찾으면 알려주지. – MonkeyBonkey
- 1. 웹 사이트의 코드를보고 CDN을 사용하고 있는지 확인할 수 있습니까?
- 2. 인증서를보고 HTTPS 프록시를 사용하고 있는지 확인할 수 있습니까?
- 3. PHP가 TBinaryProtocolAccelerated를 사용하고 있는지 어떻게 확인할 수 있습니까
- 4. 서비스가 있는지 Wix3에서 확인할 수 있습니까?
- 5. 키보드 진동이 켜져 있는지 확인할 수 있습니까?
- 6. iPhone이 도킹되어 있는지 확인할 수 있습니까?
- 7. 파일이 있는지 어떻게 확인할 수 있습니까?
- 8. 변수가 있는지 어떻게 확인할 수 있습니까?
- 9. 위치 서비스가 활성화되어 있는지 확인할 수 있습니까?
- 10. 이 헤더가 있는지 어떻게 확인할 수 있습니까?
- 11. 뷰가 데이터베이스에 있는지 어떻게 확인할 수 있습니까?
- 12. 개체가 참조되고 있는지 확인할 수 있습니까?
- 13. 장치가 jailbroken되어 있는지 확인할 수 있습니까?
- 14. MSBuild : 프로세스가 있는지 어떻게 확인할 수 있습니까?
- 15. iPhone에 암호가 있는지 확인할 수 있습니까?
- 16. VNC 연결이 활성화되어 있는지 확인할 수 있습니까
- 17. javascript - 아약스가 현재로드되고 있는지 확인할 수 있습니까?
- 18. C# var가 정의되어 있는지 확인할 수 있습니까?
- 19. OpenRasta에서 HTTPS를 사용할 수 있습니까?
- 20. scp를 사용할 수 있는지 어떻게 확인할 수 있습니까?
- 21. 호스트에 연결할 수 있는지 어떻게 확인할 수 있습니까?
- 22. VB.NET PictureBox에 이미지가 있는지 어떻게 확인할 수 있습니까?
- 23. 마이크가 iPhone에 연결되어 있는지 어떻게 확인할 수 있습니까?
- 24. iPhone OS에서 주소록에 연락처가 있는지 프로그래밍 방식으로 확인할 수 있습니까?
- 25. 파이썬에서 Tkinter를 사용하여 키가 눌려져 있는지 어떻게 확인할 수 있습니까?
- 26. 파일 시스템에 특정 파일이 있는지 확인할 수 있습니까?
- 27. jquery를 사용하여 요소에 자식 요소가 있는지 어떻게 확인할 수 있습니까?
- 28. 노드 응용 프로그램의 프로파일 링을 통해 메모리와 CPU 리소스를 어디에 사용하고 있는지 확인할 수 있습니까?
- 29. PHP를 통해 어떤 브라우저를 사용하고 있는지 확인할 수 있습니까? 그리고 특정 브라우저가 발견되면 리디렉션으로 진행합니다.
- 30. 내 앱이 VM 예산에서 얼마만큼의 메모리를 사용하고 있는지 확인할 수 있습니까?
좋아, 그것은 http://stackoverflow.com/questions/8152651/how-can-i-check-that-a-request-is-coming-over이 다른 질문에 대답했다 -https-in-express – MonkeyBonkey