2015-10-05 106 views
0

我有一個簡單的NodeJS應用程序,它可以使用遠程Java CMS進行身份驗證。成功驗證後,CMS會返回一個cookie。我無法訪問NodeJS中的http post後返回的cookie

但是,對於我的生活,我無法想象如何訪問/獲取此cookie值。 (我需要cookie才能向CMS的API發送請求,一旦通過驗證)。

我得到的cookie在curl命令中返回ok,但無法在NodeJS中訪問它。 curl命令:

curl -v -k --data "username=admin&password=password111&realm=cms101"  
    https://test.abeo.ie/gatekeeper/rs/authenticate/login 

現在,這裏是我的NodeJS應用程序的代碼:

//disable self-signed ssl cert rejection 
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 

    var http = require('http'); 
    var request = require('request'); 
    var Cookies = require('cookies'); 

    //enable cookies 
    request.defaults({jar: true}); 


    request({ 
     url: 'https://test.abeo.ie/gatekeeper/rs/authenticate/login', //URL to hit 
     qs: {username: 'admin', password: 'password111', realm: 'cms101'}, //Query string data 
     method: 'POST', //Specify the method 
     headers: { //We can define headers too 
      'Content-Type': 'application/x-www-form-urlencoded' 
     } 


    }, 

    function(error, response, body){ 
     if(error) { 
      console.log(error); 
     } else { 

      //response.cookie comes out as 'undefined' 
      console.log(response.statusCode, body, response.cookie); 

     } 
    }) 

所以我的問題是:如何從響應爲是Response.Cookie值打印出來作爲讀取cookie值未定義。

感謝,

邁克

**如果這個問題似乎模糊......只是這樣說,我將它清除掉。

回答

1

我想我剛纔已經回答我的問題:)

我有語法錯誤,而不是

console.log(response.statusCode, body, response.cookie); 

我需要

console.log(response.statusCode, body, response.headers['set-cookie']); 

只是工作,現在解析的事情: )