Define cookie TTLs as constants

This commit is contained in:
Chloe Herd 2023-12-01 09:08:32 -05:00
parent 0ba926d20c
commit 921a3efbfd
2 changed files with 34 additions and 11 deletions

View file

@ -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;
}

View file

@ -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) {