mirror of
https://github.com/usebruno/bruno.git
synced 2025-02-02 02:49:48 +01:00
Fixed: user cookie header getting overwritten by stored cookie in cli
This commit is contained in:
parent
f49e81794c
commit
ad8b30ca47
@ -233,7 +233,30 @@ const runSingleRequest = async function (
|
|||||||
if (!options.disableCookies) {
|
if (!options.disableCookies) {
|
||||||
const cookieString = getCookieStringForUrl(request.url);
|
const cookieString = getCookieStringForUrl(request.url);
|
||||||
if (cookieString && typeof cookieString === 'string' && cookieString.length) {
|
if (cookieString && typeof cookieString === 'string' && cookieString.length) {
|
||||||
request.headers['cookie'] = cookieString;
|
const existingCookieHeaderName = Object.keys(request.headers).find(
|
||||||
|
name => name.toLowerCase() === 'cookie'
|
||||||
|
);
|
||||||
|
const existingCookieString = existingCookieHeaderName ? request.headers[existingCookieHeaderName] : '';
|
||||||
|
|
||||||
|
// Helper function to parse cookies into an object
|
||||||
|
const parseCookies = (str) => str.split(';').reduce((cookies, cookie) => {
|
||||||
|
const [name, ...rest] = cookie.split('=');
|
||||||
|
if (name && name.trim()) {
|
||||||
|
cookies[name.trim()] = rest.join('=').trim();
|
||||||
|
}
|
||||||
|
return cookies;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
const mergedCookies = {
|
||||||
|
...parseCookies(existingCookieString),
|
||||||
|
...parseCookies(cookieString),
|
||||||
|
};
|
||||||
|
|
||||||
|
const combinedCookieString = Object.entries(mergedCookies)
|
||||||
|
.map(([name, value]) => `${name}=${value}`)
|
||||||
|
.join('; ');
|
||||||
|
|
||||||
|
request.headers[existingCookieHeaderName || 'Cookie'] = combinedCookieString;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user