From 15e88979d5d3065785aa44c006e895fbf82a64b0 Mon Sep 17 00:00:00 2001 From: Cfp Date: Thu, 21 Aug 2025 14:24:35 +0200 Subject: [PATCH] feat: upload ID to server --- .../components/lnv/sidebar/UserSidebar.svelte | 3 ++- src/lib/services/lnv.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/lib/components/lnv/sidebar/UserSidebar.svelte b/src/lib/components/lnv/sidebar/UserSidebar.svelte index 9874310..aec2bba 100644 --- a/src/lib/components/lnv/sidebar/UserSidebar.svelte +++ b/src/lib/components/lnv/sidebar/UserSidebar.svelte @@ -5,7 +5,7 @@ import { getAuthURL, getOIDCUser } from "$lib/services/oidc"; import * as Avatar from "$lib/components/ui/avatar"; import { m } from "$lang/messages"; - import { refreshToken } from "$lib/services/lnv"; + import { refreshToken, uploadID } from "$lib/services/lnv"; interface OIDCUser { sub: string; @@ -58,6 +58,7 @@ user = JSON.parse( atob((localStorage.getItem("lnv-id") || "").split(".")[1]), ); + await uploadID(); }); }}>{m["sidebar.user.login"]()} diff --git a/src/lib/services/lnv.ts b/src/lib/services/lnv.ts index 88bdc33..8b9efe6 100644 --- a/src/lib/services/lnv.ts +++ b/src/lib/services/lnv.ts @@ -53,6 +53,21 @@ export async function hasCapability( return caps.includes(capability); } +export async function uploadID() { + const res = await fetch(LNV_SERVER + "/user", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + token: localStorage.getItem("lnv-id") + }) + }); + if(!res.ok) { + alert("Failed to upload user data."); + } +} + export async function refreshToken() { const config = await getOIDCConfig(); if(!config) throw new Error("Server does not support OIDC."); @@ -78,6 +93,7 @@ export async function refreshToken() { localStorage.setItem("lnv-id", data.id_token); localStorage.setItem("lnv-token", data.access_token); localStorage.setItem("lnv-refresh", data.refresh_token); + await uploadID(); } export async function authFetch(url: string, params?: RequestInit): ReturnType {