/**
* Loads session cookies for a legacy project with sanity checks.
*
* @returns {object} An object containing the session cookies. Returns null if no cookies found.
*/
function loadSessionCookies() {
const cookies = document.cookie.split(';');
if (!cookies || cookies.length === 0) {
console.warn("No cookies found.");
return null;
}
const sessionCookies = {};
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i].trim();
// Split cookie into name and value
const parts = cookie.split('=');
if (parts.length !== 2) {
console.warn("Invalid cookie format:", cookie);
continue; // Skip invalid cookies
}
const name = parts[0].trim();
const value = parts[1].trim();
// Sanity check: Basic name validation (avoiding empty names)
if (!name) {
console.warn("Empty cookie name:", cookie);
continue;
}
sessionCookies[name] = value;
}
// Sanity check: Check for common session cookie names. Can be extended.
const expectedSessionCookies = ['sessionid', 'auth_token', 'user_id'];
for (const expectedCookie of expectedSessionCookies) {
if (!(expectedCookie in sessionCookies)) {
console.warn(`Missing expected session cookie: ${expectedCookie}`);
}
}
return sessionCookies;
}
//Example usage:
//const sessionData = loadSessionCookies();
//if (sessionData) {
// console.log("Session Cookies:", sessionData);
//}
Add your comment