From 9f68183929f11b4fa44e173b8dcc46cdc0f3c88d Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Mon, 7 Feb 2022 23:12:22 +0100 Subject: fix: Don't require client to have user id in session in order to check status with server --- src/webapp/src/lib/stores/session.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/webapp') diff --git a/src/webapp/src/lib/stores/session.ts b/src/webapp/src/lib/stores/session.ts index 63441df..36231cc 100644 --- a/src/webapp/src/lib/stores/session.ts +++ b/src/webapp/src/lib/stores/session.ts @@ -1,6 +1,7 @@ import {get} from "svelte/store"; +import isUUID from "validator/lib/isUUID"; import {SECONDS_BETWEEN_SESSION_CHECK, storage_keys} from "@/lib/configuration"; -import {get_profile_async, create_session_async, end_session_async} from "@/lib/api/account"; +import {get_profile_async, create_session_async} from "@/lib/api/account"; import {writable_persistent, StoreType} from "@/lib/stores/persistent-store"; import type {IProfileData} from "@/lib/models/IProfileData"; import type {IErrorResult} from "@/lib/models/IErrorResult"; @@ -51,7 +52,8 @@ export async function clear_session_async() { } export async function session_is_valid_async(refresh = false) { - const hasId = get(session).id !== ""; + const hasId = get(session).id && isUUID(get(session).id); + const storage_value = localStorage.getItem(storage_keys.last_active_check); if (!storage_value) { localStorage.setItem(storage_keys.last_active_check, String(0)); @@ -61,10 +63,10 @@ export async function session_is_valid_async(refresh = false) { const epoch_seconds_now = Math.floor(Date.now() / 1000); const force_server_check = next_active_check < epoch_seconds_now; console.log("Checking session validity..."); - if (!hasId || refresh || force_server_check) { + if (refresh || force_server_check) { const profile_data_request = await get_profile_async(); localStorage.setItem(storage_keys.last_active_check, String(epoch_seconds_now)); - console.log("Session is valid, because (!hasId || refresh || force_server_check)", { + console.log("Session is valid, because (refresh || force_server_check)", { last_active_check, next_active_check, epoch_seconds_now, -- cgit v1.3