diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-02-07 23:12:22 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-02-07 23:12:22 +0100 |
| commit | 9f68183929f11b4fa44e173b8dcc46cdc0f3c88d (patch) | |
| tree | 9da69534812be696b8790de08f69844409ee4ae5 /src | |
| parent | 3dd7daf1165da46c662e05c1599d6489996ffb44 (diff) | |
| download | bookmark-thing-9f68183929f11b4fa44e173b8dcc46cdc0f3c88d.tar.xz bookmark-thing-9f68183929f11b4fa44e173b8dcc46cdc0f3c88d.zip | |
fix: Don't require client to have user id in session in order to check status with server
Diffstat (limited to 'src')
| -rw-r--r-- | src/webapp/src/lib/stores/session.ts | 10 |
1 files changed, 6 insertions, 4 deletions
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, |
