From 921a3efbfd210c299562722b1305d7374d1ae5a7 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 1 Dec 2023 09:08:32 -0500 Subject: [PATCH] Define cookie TTLs as constants --- src/constants/cookie-names.js | 21 +++++++++++++++- .../heritage-integration/cookie-helper.js | 24 +++++++++++-------- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/constants/cookie-names.js b/src/constants/cookie-names.js index bf6bc130a..d62934cf5 100644 --- a/src/constants/cookie-names.js +++ b/src/constants/cookie-names.js @@ -12,4 +12,23 @@ const cookieNames = { SESSION_KEY: "skey", }; -export { cookieNames }; +const cookieExpirations = { + SESSION_ID: convertToSeconds({ minutes: 30 }), + DXDEV: convertToSeconds({ years: 1 }), + FUNNEL_USER_ID: convertToSeconds({ weeks: 1 }), + FUNNEL_SESSION_KEY: convertToSeconds({ minutes: 30 }), +}; + +export { cookieNames, cookieExpirations }; + +function convertToSeconds({ years, months, weeks, days, hours, minutes, seconds }) { + let total = seconds ?? 0; + total += (minutes ?? 0) * 60; + total += (hours ?? 0) * 60 * 60; + total += (days ?? 0) * 24 * 60 * 60; + total += (weeks ?? 0) * 7 * 24 * 60 * 60; + total += (months ?? 0) * 30 * 24 * 60 * 60; + total += (years ?? 0) * 365 * 24 * 60 * 60; + + return total; +} diff --git a/src/helpers/heritage-integration/cookie-helper.js b/src/helpers/heritage-integration/cookie-helper.js index 56736d340..50896cab2 100644 --- a/src/helpers/heritage-integration/cookie-helper.js +++ b/src/helpers/heritage-integration/cookie-helper.js @@ -1,4 +1,4 @@ -import { cookieNames } from "@/constants/cookie-names"; +import { cookieNames, cookieExpirations } from "@/constants/cookie-names"; import store from "@/store"; import { applicationConfig } from "@/constants/application-config"; @@ -84,7 +84,7 @@ export function regenerateDeviceId() { { [cookieNames.DXDEV]: `did=${crypto.randomUUID()}`, }, - { maxAge: 365 * 24 * 60 * 60 } + { maxAge: cookieExpirations.DXDEV } ); } } @@ -105,7 +105,7 @@ export function regenerateUserId() { { [cookieNames.FUNNEL_USER_ID]: crypto.randomUUID(), }, - { maxAge: 7 * 24 * 60 * 60 } + { maxAge: cookieExpirations.FUNNEL_USER_ID } ); } } @@ -129,7 +129,7 @@ export function setSessionKeyIfUnset(value) { { [cookieNames.FUNNEL_SESSION_KEY]: value, }, - { maxAge: 30 * 60 } + { maxAge: cookieExpirations.FUNNEL_SESSION_KEY } ); } } @@ -153,7 +153,7 @@ export function setSessionIdIfUnset(value) { { [cookieNames.SESSION_ID]: value, }, - { maxAge: 30 * 60 } + { maxAge: cookieExpirations.SESSION_ID } ); } } @@ -162,7 +162,9 @@ export function setSessionIdIfUnset(value) { Updates session ID cookie with new expiration date */ export function updateSessionIdCookie() { - createOrUpdateCookie(cookieNames.SESSION_ID, getSessionIdValue(), { maxAge: 60 * 30 }); + createOrUpdateCookie(cookieNames.SESSION_ID, getSessionIdValue(), { + maxAge: cookieExpirations.SESSION_ID, + }); } export function setCookieProperties( @@ -196,10 +198,12 @@ export function areAllSessionCookiesSet() { } export function refreshSessionExpiration() { - refreshCookieExpiration(cookieNames.SESSION_ID, 30 * 60); - refreshCookieExpiration(cookieNames.DXDEV, 365 * 24 * 60 * 60); - refreshCookieExpiration(cookieNames.FUNNEL_USER_ID, 7 * 24 * 60 * 60); - refreshCookieExpiration(cookieNames.FUNNEL_SESSION_KEY, 30 * 60); + console.log(cookieExpirations); + + refreshCookieExpiration(cookieNames.SESSION_ID, cookieExpirations.SESSION_ID); + refreshCookieExpiration(cookieNames.DXDEV, cookieExpirations.DXDEV); + refreshCookieExpiration(cookieNames.FUNNEL_USER_ID, cookieExpirations.FUNNEL_USER_ID); + refreshCookieExpiration(cookieNames.FUNNEL_SESSION_KEY, cookieExpirations.FUNNEL_SESSION_KEY); } export function refreshCookieExpiration(name, expirationTime) {