Skip to content

Commit 81b6f0d

Browse files
committed
put sessionIdTimestamp in sessionId
1 parent f9c5ce8 commit 81b6f0d

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/app/_common/monitoring/session.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
11
import { v4 as uuidv4 } from "uuid";
22

3+
export const SESSION_TAG = "session";
34
export const SESSION_ID_TAG = "sessionId";
4-
export const SESSION_ID_TIMESTAMP_TAG = "sessionIdTimestamp";
5-
const SESSION_MAX_DURATION_MS = 24 * 60 * 60 * 1000; // 24 hours in milliseconds
5+
const SESSION_MAX_DURATION_MS = 60 * 1000; // 24 hours in milliseconds
66

77
export function getSessionId() {
8-
let sessionId: string | null = null;
9-
let sessionIdTimestamp: string | null = null;
8+
let session: { id: string; timestamp: number } | null = null;
109
try {
11-
sessionId = sessionStorage.getItem(SESSION_ID_TAG);
12-
sessionIdTimestamp = sessionStorage.getItem(SESSION_ID_TIMESTAMP_TAG);
10+
const sessionString: string | null = sessionStorage.getItem(SESSION_TAG);
11+
if (sessionString) {
12+
session = JSON.parse(sessionString);
13+
}
1314

1415
const now = Date.now();
15-
if (!sessionId || !sessionIdTimestamp || now - parseInt(sessionIdTimestamp, 10) > SESSION_MAX_DURATION_MS) {
16-
sessionId = uuidv4();
17-
sessionIdTimestamp = now.toString();
18-
sessionStorage.setItem(SESSION_ID_TAG, sessionId);
19-
sessionStorage.setItem(SESSION_ID_TIMESTAMP_TAG, sessionIdTimestamp);
16+
if (!session || now - session.timestamp > SESSION_MAX_DURATION_MS) {
17+
session = {
18+
id: uuidv4(),
19+
timestamp: now,
20+
};
21+
sessionStorage.setItem(SESSION_TAG, JSON.stringify(session));
2022
}
2123
} catch (e) {
2224
// It's possible user has disabled persistent data
23-
sessionId = "undefined";
25+
session = { id: "undefined", timestamp: 0 };
2426
}
25-
return sessionId;
27+
return session.id;
2628
}

0 commit comments

Comments
 (0)