1. /**
  2. * Loads session cookies for a legacy project with sanity checks.
  3. *
  4. * @returns {object} An object containing the session cookies. Returns null if no cookies found.
  5. */
  6. function loadSessionCookies() {
  7. const cookies = document.cookie.split(';');
  8. if (!cookies || cookies.length === 0) {
  9. console.warn("No cookies found.");
  10. return null;
  11. }
  12. const sessionCookies = {};
  13. for (let i = 0; i < cookies.length; i++) {
  14. let cookie = cookies[i].trim();
  15. // Split cookie into name and value
  16. const parts = cookie.split('=');
  17. if (parts.length !== 2) {
  18. console.warn("Invalid cookie format:", cookie);
  19. continue; // Skip invalid cookies
  20. }
  21. const name = parts[0].trim();
  22. const value = parts[1].trim();
  23. // Sanity check: Basic name validation (avoiding empty names)
  24. if (!name) {
  25. console.warn("Empty cookie name:", cookie);
  26. continue;
  27. }
  28. sessionCookies[name] = value;
  29. }
  30. // Sanity check: Check for common session cookie names. Can be extended.
  31. const expectedSessionCookies = ['sessionid', 'auth_token', 'user_id'];
  32. for (const expectedCookie of expectedSessionCookies) {
  33. if (!(expectedCookie in sessionCookies)) {
  34. console.warn(`Missing expected session cookie: ${expectedCookie}`);
  35. }
  36. }
  37. return sessionCookies;
  38. }
  39. //Example usage:
  40. //const sessionData = loadSessionCookies();
  41. //if (sessionData) {
  42. // console.log("Session Cookies:", sessionData);
  43. //}

Add your comment