node.js를 사용하여 API를 작성하고 표현합니다. 하지만 외부 서버에 대한 특정 경로에서 일부 요청을 프록시하고 요청을 수행하는 클린트에 대한 외부 서버의 응답을 표시 할 수 있어야합니다.노드, 기본 인증 헤더가있는 외부 API에 대한 API 프록시 요청
하지만 클라이언트가 요청과 함께 보내는 기본 인증을 전달해야합니다.
내가 좋아하는 요청 모듈을 사용하여 시도했다 :
app.get('/c/users/', function(req,res) {
//modify the url in any way you want
var newurl = 'https://www.external.com'
request(newurl).pipe(res),
})
을하지만 내가 "금지 (403)는"다시 외부 서버를 형성 얻을 수 있기 때문에 기본 인증 헤더를 보내지 않도록 (www.external.com)
보인다 수행 할 때 몇 가지 문제가 있습니다, 그래서GET http://example.se:4000/c/users/ HTTP/1.1
Accept-Encoding: gzip,deflate
X-version: 1
Authorization: Basic bmR4ZHpzNWZweWFpdjdxfG1vcmV1c2*******=
Accept: application/json
Host: example.se:4000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
그리고 내가 www.external.com 직접 반대하지만 동일한 요청을 할 경우 작동 :
는 요청 메신저 결정처럼 찾고 노드의 프록시
하지만 난 단지 인증 코드가 같은 클라이언트 요청에서 헤더에 인코딩 얻을 : 인증 :뿐만 아니라 다음과 같이 요청 헤더를 설정하고 응답 헤더를 복사하려면 기본 bmR4ZHpzNWZweWFpdjdxfG1vcmV1c2를 ****** * = 그래서 사용자 이름/비밀번호를 추가 할 수 없습니다. 어떻게 든이 헤더를 전달해야합니다. . ({: NEWURL, 헤더 : { '인증': '기본 bmR4ZHpzNWZweWFpdjdxfG1vcmV1c2 ******* ='} URL});' – morto
당신은 너무 ' 요청과 같은 헤더를 설정할 수 있습니다 죄송합니다 지금 당신을 따르지 않아요. 요청에서 헤더를 가져 와서 외부 서버로 나가는 요청에 전달해야 할 필요가 있다고 생각하십니까? – Bulkan
파이프 (고해상도) – morto