Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
fetch-cookie
Advanced tools
The fetch-cookie npm package is a wrapper around the Fetch API that adds automatic handling of cookies. It allows you to manage cookies in a more convenient way when making HTTP requests, which is particularly useful for maintaining session state across multiple requests.
Automatic Cookie Handling
This feature allows you to automatically handle cookies when making HTTP requests. The cookies are stored and sent with subsequent requests to the same domain, making it easier to manage session state.
const fetch = require('fetch-cookie/node-fetch')(require('node-fetch'));
fetch('https://example.com')
.then(res => res.text())
.then(body => console.log(body));
Custom Cookie Jar
You can use a custom cookie jar to manage cookies. This is useful if you need to share cookies between different parts of your application or if you need to persist cookies between sessions.
const fetch = require('fetch-cookie/node-fetch')(require('node-fetch'));
const tough = require('tough-cookie');
const cookieJar = new tough.CookieJar();
fetch('https://example.com', { cookieJar })
.then(res => res.text())
.then(body => console.log(body));
Integration with Node.js and Browsers
The package can be used both in Node.js and in browser environments, making it versatile for different types of applications.
const fetch = require('fetch-cookie/node-fetch')(require('node-fetch'));
fetch('https://example.com')
.then(res => res.text())
.then(body => console.log(body));
Axios is a promise-based HTTP client for the browser and Node.js. It supports automatic transformation of JSON data, and you can use it with the 'axios-cookiejar-support' package to handle cookies similarly to fetch-cookie.
Request is a simplified HTTP client for Node.js with support for many features, including cookie handling via the 'request-promise-native' package. However, it is now deprecated and not recommended for new projects.
Superagent is a small, progressive client-side HTTP request library that also works in Node.js. It supports cookies out of the box and provides a similar level of functionality for managing cookies.
Decorator for a
fetch
function to support automatic cookies.
This library is more suited to use with a Node.js fetch
implementation
like node-fetch, since the browser version is supposed to let a way
to include cookies in requests.
var fetch = require('fetch-cookie')(require('node-fetch'))
If you want to customize the tough-cookie CookieJar
instance (for example, with a custom store), you can inject it as a
second argument.
All calls to fetch
will store and send back cookies according to the URL.
By default, cookies are not set correctly in the edge case where a response sets cookies and redirects to another URL. A real-life example of this behaviour is a login page setting a session cookie and redirecting.
The reason for this limitation is that the generic fetch API does not allow any way to hook into redirects. However, the node-fetch library does expose its own API which we can use.
Long story short: if cookies during indirection turns out to be a requirement for you, and if you are using node-fetch, then you can use the custom node-fetch decorator provided with this library:
var fetch = require('fetch-cookie/node-fetch')(require('node-fetch'))
[0.7.0] - 2017-09-28
FAQs
Decorator for a `fetch` function to support automatic cookies.
The npm package fetch-cookie receives a total of 139,466 weekly downloads. As such, fetch-cookie popularity was classified as popular.
We found that fetch-cookie demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.