From 976473a781f1bcda7ba02fee9db122e163243e2b Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 4 Nov 2026 14:38:22 -0700 Subject: settings: show the read-only and full access API tokens under security Co-Authored-By: Claude Opus 5.5 --- src/routes/(app)/settings/security/+page.server.ts | 7 ++++ src/routes/(app)/settings/security/+page.svelte | 49 +++++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) (limited to 'src/routes') diff --git a/src/routes/(app)/settings/security/+page.server.ts b/src/routes/(app)/settings/security/+page.server.ts index 4145935e..e7cc93a3 100644 --- a/src/routes/(app)/settings/security/+page.server.ts +++ b/src/routes/(app)/settings/security/+page.server.ts @@ -1,4 +1,11 @@ import updateUser from "$lib/settings"; +import { auth, get } from "$lib/utils"; + +export const load = async ({ cookies }) => { + const token = cookies.get("token"); + const ro = token ? await get("/ro", auth(cookies)) : undefined; + return { ro, token }; +}; export const actions = { default: updateUser, diff --git a/src/routes/(app)/settings/security/+page.svelte b/src/routes/(app)/settings/security/+page.svelte index 8c38bca1..b774d919 100644 --- a/src/routes/(app)/settings/security/+page.svelte +++ b/src/routes/(app)/settings/security/+page.svelte @@ -10,7 +10,7 @@ import { page } from "$app/stores"; let { data } = $props(); - let { user } = $derived(data); + let { user, ro, token: apiToken } = $derived(data); let { id } = user; let { haspin } = $derived(user); @@ -23,6 +23,7 @@ pin = $state(""), revealSeed, revealNsec = $state(), + revealToken = $state(), token = $state(""), setting2fa = $state(), settingPin = $state(), @@ -232,6 +233,52 @@ {/if} +{#snippet tokenBox(value)} +
+
{value}
+ +
+{/snippet} + +{#if ro} +
+
+ {$t("user.settings.apiTokens")} +

+ {$t("user.settings.apiTokensDescription")} + {$t("user.settings.apiDocs")} +

+
+ +
+ {$t("user.settings.readOnlyToken")} +

+ {$t("user.settings.readOnlyTokenDescription")} +

+ {@render tokenBox(ro)} +
+ +
+ {$t("user.settings.fullAccessToken")} +

+ {$t("user.settings.fullAccessTokenDescription")} +

+ {#if revealToken} + {@render tokenBox(apiToken)} + {:else} + + {/if} +
+
+{/if} +