Nodejsでcookieを適切に処理するには

node-fetchで取得したHTTPヘッダーのset-cookieを配列化したい。

js

1fetch("url")2.then(res => {3 console.log(res.headers.get("set-cookie"));4})

ログ

XSRF-TOKEN=m1PFe1BVJVap7HZ2IugHUC82tMaymy4; expires=Thu, 17-Aug-2023 08:45:36 GMT; path=/; domain=.ppy.sh; secure, osu_session=akJpdiI6InQycEZXYWVWdGdpSOUMieidGFnIjoiIn0%3D; expires=Thu, 17-Aug-2023 08:45:36 GMT; path=/; domain=.ppy.sh; secure; httponly

特徴

  • 各項目は「; 」で区切られている。各クッキーは「, 」で区切られている。値なしキーがある。

実現したいこと

json5

1[2 {3 key: "XSRF-TOKEN",4 value: "m1PFe1BVJVap7HZ2IugHUC82tMaymy4",5 expires: "Thu, 17-Aug-2023 08:45:36 GMT",6 path: "/",7 domain: ".ppy.sh",8 secure: true,9 },10 {11 key: "osu_session",12 value: "akJpdiI6InQycEZXYWVWdGdpSOUMieidGFnIjoiIn0%3D",13 expires: "Thu, 17-Aug-2023 08:45:36 GMT",14 path: "/",15 domain: ".ppy.sh",16 secure: true,17 httponly: true18 }19]

何に困っているか

複数cookieを分けるために「, 」でsplitして配列化しようとしたが、「expires」の値の「, 」で正常に分割できないと考えた。

試したこと

※ES module

  • npm cookieの使用

js

1import cookie from "cookie";2console.log(cookie.parse(res.headers.get("set-cookie")));

ログ

json5

1{2 'XSRF-TOKEN': 'm1PFe1BVJVap7HZ2IugHUC82tMaymy4',3 expires: 'Thu, 17-Aug-2023 09:24:19 GMT',4 path: '/',5 domain: '.ppy.sh',6 'secure, osu_session': 'akJpdiI6InQycEZXYWVWdGdpSOUMieidGFnIjoiIn0='7}

値なしキーや複数cookieには対応していなかった。

質問

これらの条件に一致するコードや正規表現、またはモジュールは何か。

コメントを投稿

0 コメント