Ogden
Ogden

Reputation: 477

How to log cookies from a cookie jar?

How can I log cookies that are stored in a cookie jar using the request-promise npm module.

I have tried printing the cookie jar variable but as expected that does not work.

How I am creating the jar,

var request = require('request-promise');
var sess = request.jar()

The code sending the request,

request({url: myurl, jar: sess}, function () {
    request(
        {
            url: 'myurl',
            method: 'POST',
            headers: [
            {
                "Accept": "application/json",
            }
            ],
            postData: {
                "xqr":"1"
            }
        }
)

I expect all the cookies used to send my request to be printed out using console.log()

Upvotes: 2

Views: 6381

Answers (1)

Ahmet Can Güven
Ahmet Can Güven

Reputation: 5462

request uses tough-cookie internally. So you can easily access to tough-cookie store which is an abstract class and use its prototype function getAllCookies.

function logCookies(jar){
    jar._jar.store.getAllCookies(function(err, cookieArray) {
        if(err) throw new Error("Failed to get cookies");
        console.log(JSON.stringify(cookieArray, null, 4));
    });
}

And this will log all cookies and its properties.

[
    {
        "key": "1P_JAR",
        "value": "1P_JAR_VALUE",
        "expires": "2019-01-23T20:09:38.000Z",
        "domain": "google.com",
        "path": "/",
        "hostOnly": false,
        "creation": "2018-12-24T20:09:37.800Z",
        "lastAccessed": "2018-12-24T20:09:38.097Z"
    },
    {
        "key": "NID",
        "value": "NID_VALUE",
        "expires": "2019-06-25T20:09:38.000Z",
        "domain": "google.com",
        "path": "/",
        "httpOnly": true,
        "hostOnly": false,
        "creation": "2018-12-24T20:09:37.802Z",
        "lastAccessed": "2018-12-24T20:09:38.098Z"
    }
]

If you only want to get raw cookie string you can just simply use

console.log(cookieArray.map(cookie => cookie.toString()))

And it will give you

[
    '1P_JAR=1P_JAR_VALUE; Expires=Wed, 23 Jan 2019 20:15:02 GMT; Domain=google.com; Path=/',
    'NID=NID_VALUE; Expires=Tue, 25 Jun 2019 20:15:02 GMT; Domain=google.com; Path=/; HttpOnly'
]

Upvotes: 5

Related Questions