2012-09-06 2 views

답변

13

놀랍게도 request 라이브러리 쿠키는 기본적으로 사용하도록 설정되어 있습니다. 당신은 너무합니다 (Github에서 페이지에서 촬영)처럼 자신을 보낼 수 있습니다

var j = request.jar() 
var cookie = request.cookie('your_cookie_here') 
j.add(cookie) 
request({url: 'http://www.google.com', jar: j}, function() { 
    request('http://images.google.com') 
}) 
+1

그러나 기본 모듈만으로는 코드가 어떻게 생겼습니까? – jiyinyiyong

+0

아 : 확실하지 않습니다. 내 요청에 대해 기본 http 클라이언트를 사용 해본 적이 한번도 없었습니다. – Femi

+0

방금 ​​HTTP에 대해 더 자세히 배우기 시작했습니다. 기본'http' 모듈에 그렇게 할 방법이 있다면, 그것에 대해 더 자세히 알 수 있다고 생각합니다. – jiyinyiyong

4

를 네이티브 http:request() 방법을 함께하고 싶어, 당신은 적절한 Set-Cookie 헤더를 설정해야합니다 (무엇에 대한 HTTP 참조를 참조하십시오 그들이 는 options 인수의 headers 구성원에 있습니다. 쿠키를 처리하는 고유 코드에는 특정 메소드가 없습니다. 구체적인 예가 필요한 경우 Mikeal의 request 라이브러리의 소스 코드를 참조하거나 cookieParser 코드를 connect에 참조하십시오.

그러나 Femi는 거의 확실합니다. 쿠키를 다루는 것은 다소 흥미로운 세부 사항으로 가득 차 있습니다. 이미 작성되었으며 더 중요한 것은 테스트 된 코드를 사용하면 거의 항상 개선 될 것입니다. 이 특정 바퀴를 재발 명하려고 시도하면 대부분의 시간 동안 작동하는 것으로 보이는 코드가 떠오르지 만 때로는 예측할 수 없을 정도로 신비하게 실패합니다.

0
var jar = request.jar(); 
const jwtSecret = fs.readFileSync(`${__dirname}/.ssh/id_rsa`, 'utf8'); 
const token = jwt.sign(jwtPayload, jwtSecret, settings); 
jar.setCookie(`any-name=${token}`, 'http://localhost:12345/'); 
const options = { 
    method: 'GET', 
    url: 'http://localhost:12345', 
    jar, 
    json: true 
}; 
request(options, handleResponse); 
+0

답변에 대한 설명 및/또는 정보를 추가하여 질문 된 문제를 해결하는 방법을 설명하여 다른 사람들이 설명을 요구하지 않고 쉽게 이해할 수있게하십시오. – koceeng

관련 문제