AxiosでCookieを自動処理する


※環境はNode.js 12.xです

withCredentials: true

色んなサイトに書いてある方法。

const Axios = require('axios');

let client = Axios.create({ withCredentials: true });

const response1 = client.get('https://example.com/set_cookie');
console.log(response1.headers['set-cookie']); // [ 'PHPSESSID=pbjscl1plduu6npqeemep58550' ]

const response2 = client.get('https://example.com/check_cookie');
console.log(response2.indexOf('Cookie') != -1); // false

ところがこの方法ではうまく行かなかった。

axios-cookiejar-support

CookieJarと呼ばれるCookie処理バックエンドを組み込む方法。
まずはプラグインをインストールする。

npm install axios-cookiejar-support

そして実際にリクエストしてみる。

const Axios = require('axios').default;
const AxiosCookiejarSupport = require('axios-cookiejar-support').default;

// Axiosにプラグイン注入
AxiosCookiejarSupport(Axios);

let client = Axios.create({
    jar: true, // cookiejarを有効化する
    withCredentials: true, // 依然として必要
 });

const response1 = client.get('https://example.com/set_cookie');
console.log(response1.headers['set-cookie']); // [ 'PHPSESSID=pbjscl1plduu6npqeemep58550' ]

const response2 = client.get('https://example.com/check_cookie');
console.log(response2.indexOf('Cookie') != -1); // true

うまく行ったらしい。
詳しい使い方はaxios-cookiejar-supportを参照。