0

In my Meteor (1.2) application, I make a client-side HTTP.get call over https to a remote server supporting CORS.

var getUrl= "https://remoteserver/;
HTTP.call('GET', getUrl , {}, function (error, response) {
    console.log (response);
}

Now, the issue is that set-cookie string is present in HTTP headers of the response of such HTTP call in Chrome's DevTools' Network tab.

However when I call console.log (response) , they're not included. Actually only these 3 properties are printed in response['headers']:

  • Content-Type
  • cache-control
  • last-modified

Digging more in, I found out on Meteor Docs that

Cookies are deliberately excluded from the headers as they are a security risk for this transport. For details and alternatives, see the SockJS documentation.

Now, on the linked SockJS docs, it says that

Basically - cookies are not suited for SockJS model. If you want to authorise a session - provide a unique token on a page, send it as a first thing over SockJS connection and validate it on the server side. In essence, this is how cookies work.

I found this this answer about sockJS but it looks outdated an not specific to Meteor.

The remote server expects me to use cookie-set header, so I have no choice. Also, for established scalability reasons, the HTTP.call must be done client-side (server-side was not an issue at all) What solution / workaround can I adopt?

Community
  • 1
  • 1
dragonmnl
  • 14,578
  • 33
  • 84
  • 129

1 Answers1

1

This package looks to be designed to help in situations like this, though I have not used it:

https://atmospherejs.com/dandv/http-more

JeremyK
  • 3,240
  • 1
  • 11
  • 24