@non-hacker/axios-cookiejar-support

Add tough-cookie support to axios.

Usage no npm install needed!

<script type="module">
  import nonHackerAxiosCookiejarSupport from 'https://cdn.skypack.dev/@non-hacker/axios-cookiejar-support';
</script>

README

axios-cookiejar-support

Add tough-cookie support to axios.


NPM LICENSE CircleCI

dependencies peerdependencies devdependencies

Install

$ npm i axios tough-cookie axios-cookiejar-support

-- OR --

$ npm i axios tough-cookie @3846masa/axios-cookiejar-support # Same as above

TypeScript

If you want to use it with TypeScript, add @types/tough-cookie.

npm i @types/tough-cookie

Usage

const axios = require('axios').default;
const axiosCookieJarSupport = require('axios-cookiejar-support').default;
const tough = require('tough-cookie');

axiosCookieJarSupport(axios);

const cookieJar = new tough.CookieJar();

axios
  .get('https://google.com', {
    jar: cookieJar, // tough.CookieJar or boolean
    withCredentials: true, // If true, send cookie stored in jar
  })
  .then(() => {
    console.log(cookieJar);
  });

See examples.

Notice: Set default cookiejar

axios@>=0.19.0 cannot assign defaults.jar via axios.create() before wrapping instance. When you want to set defaults.jar, please set directly after wrapping instance.

const axios = require('axios').default;
const axiosCookieJarSupport = require('axios-cookiejar-support').default;
const tough = require('tough-cookie');

const instance = axios.create({
  // WARNING: This value will be ignored.
  jar: new tough.CookieJar(),
});

// Set directly after wrapping instance.
axiosCookieJarSupport(instance);
instance.defaults.jar = new tough.CookieJar();

Extended Request Config

c.f.) https://github.com/mzabriskie/axios#request-config

{
  // `jar` is tough.CookieJar instance or boolean.
  // If true, axios create CookieJar automatically.
  jar: undefined, // default

  // Silently ignore things like parse cookie errors and invalid domains.
  // See also https://github.com/salesforce/tough-cookie
  ignoreCookieErrors: false // default

  // **IMPORTANT**
  // If false, axios DONOT send cookies from cookiejar.
  withCredentials: false // default
}

Browser

Running on browser, this library becomes noop (config.jar might be ignored).

Contribution

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

LICENSE

MIT License

Author

3846masa icon 3846masa


Donate

Paypal.me (Onetime donate)