Skip to content

Commit b9dbf95

Browse files
feat: refactor the cookie name parser to avoid values altogether
1 parent 2c848f5 commit b9dbf95

File tree

2 files changed

+16
-18
lines changed

2 files changed

+16
-18
lines changed

lib/build/recipe/session/cookieAndHeaders.js

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/ts/recipe/session/cookieAndHeaders.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -273,33 +273,31 @@ export function hasMultipleCookiesForTokenType(
273273
return false;
274274
}
275275

276-
const cookies = parseCookieStringFromRequestHeaderAllowingDuplicates(cookieString);
276+
const cookieNames = getCookieNamesFromRequestHeaderAllowingDuplicates(cookieString);
277277
const cookieName = config.getCookieNameForTokenType(req, tokenType, userContext);
278-
return cookies[cookieName] !== undefined && cookies[cookieName].length > 1;
278+
return cookieNames.filter((name) => name === cookieName).length > 1;
279279
}
280280

281281
// This function is required because cookies library (and most of the popular libraries in npm)
282282
// does not support parsing multiple cookies with the same name.
283-
function parseCookieStringFromRequestHeaderAllowingDuplicates(cookieString: string): Record<string, string[]> {
284-
const cookies: Record<string, string[]> = {};
283+
function getCookieNamesFromRequestHeaderAllowingDuplicates(cookieString: string): string[] {
284+
const cookieNames: string[] = [];
285285

286286
const cookiePairs = cookieString.split(";");
287287

288288
for (const cookiePair of cookiePairs) {
289-
const [name, value] = cookiePair.trim().split("=");
289+
const [name, _] = cookiePair.trim().split("=");
290290

291291
// Try to decode the name or fallback to the original name
292292
let decodedName = name;
293293
try {
294294
decodedName = decodeURIComponent(name);
295295
} catch (e) {
296-
logDebugMessage(
297-
`parseCookieStringFromRequestHeaderAllowingDuplicates: Error decoding cookie name: ${name}`
298-
);
296+
logDebugMessage(`getCookieNamesFromRequestHeaderAllowingDuplicates: Error decoding cookie name: ${name}`);
299297
}
300298

301-
cookies.hasOwnProperty(decodedName) ? cookies[decodedName].push(value) : (cookies[decodedName] = [value]);
299+
cookieNames.push(decodedName);
302300
}
303301

304-
return cookies;
302+
return cookieNames;
305303
}

0 commit comments

Comments
 (0)