From 895c9662092a9589dcfeff39cbe3c464e5d092db Mon Sep 17 00:00:00 2001 From: d34dscene Date: Wed, 25 Jun 2025 21:35:21 +0200 Subject: [PATCH] remove token --- web/src/lib/api.ts | 9 ++--- web/src/lib/stores/common.ts | 27 ++++++++------- web/src/routes/+layout.ts | 44 +------------------------ web/src/routes/login/reset/+page.svelte | 6 ++-- web/src/routes/router/+page.svelte | 4 +-- 5 files changed, 20 insertions(+), 70 deletions(-) diff --git a/web/src/lib/api.ts b/web/src/lib/api.ts index dfe2a11..40c27f2 100644 --- a/web/src/lib/api.ts +++ b/web/src/lib/api.ts @@ -1,9 +1,6 @@ import type { DescService } from "@bufbuild/protobuf"; import { createClient, type Client } from "@connectrpc/connect"; import { createConnectTransport } from "@connectrpc/connect-web"; -import { goto } from "$app/navigation"; -import { token } from "./stores/common"; -import { user } from "./stores/user"; import { ProfileService } from "./gen/mantrae/v1/profile_pb"; import { UserService } from "./gen/mantrae/v1/user_pb"; import { RouterService } from "./gen/mantrae/v1/router_pb"; @@ -26,9 +23,6 @@ export const BASE_URL = import.meta.env.PROD export function useClient(service: T): Client { const headers = new Headers(); headers.set("Content-Type", "application/json"); - // if (token.value) { - // headers.set("Authorization", "Bearer " + token.value); - // } const transport = createConnectTransport({ baseUrl: BASE_URL, @@ -53,12 +47,13 @@ export async function upload(input: HTMLInputElement | null, endpoint: string) { body.append("file", input.files[0]); const headers = new Headers(); - headers.set("Authorization", "Bearer " + token.value); + headers.set("Content-Type", "multipart/form-data"); const response = await fetch(`${BASE_URL}/api/${endpoint}`, { method: "POST", headers, body, + credentials: "include", }); if (!response.ok) { throw new Error("Failed to upload"); diff --git a/web/src/lib/stores/common.ts b/web/src/lib/stores/common.ts index ed8c50e..d53e6c9 100644 --- a/web/src/lib/stores/common.ts +++ b/web/src/lib/stores/common.ts @@ -1,17 +1,16 @@ -import { createLocalStorage, LocalStorage } from '$lib/storage.svelte'; +import { createLocalStorage } from "$lib/storage.svelte"; -export const token: LocalStorage = createLocalStorage('auth_token', null); -export const pageIndex = createLocalStorage('page_index', 0); -export const pageSize = createLocalStorage('page_size', 10); -export const routerColumns = createLocalStorage('router_columns', []); -export const middlewareColumns = createLocalStorage('middleware_columns', []); -export const ruleTab = createLocalStorage('rule_tab', 'simple'); +export const pageIndex = createLocalStorage("page_index", 0); +export const pageSize = createLocalStorage("page_size", 10); +export const routerColumns = createLocalStorage("router_columns", []); +export const middlewareColumns = createLocalStorage("middleware_columns", []); +export const ruleTab = createLocalStorage("rule_tab", "simple"); -export const DateFormat = new Intl.DateTimeFormat('en-US', { - year: 'numeric', - month: 'long', - day: 'numeric', - hour: 'numeric', - minute: 'numeric', - second: 'numeric' +export const DateFormat = new Intl.DateTimeFormat("en-US", { + year: "numeric", + month: "long", + day: "numeric", + hour: "numeric", + minute: "numeric", + second: "numeric", }); diff --git a/web/src/routes/+layout.ts b/web/src/routes/+layout.ts index 1b871d4..f684592 100644 --- a/web/src/routes/+layout.ts +++ b/web/src/routes/+layout.ts @@ -1,8 +1,8 @@ +import type { LayoutLoad } from "./$types"; import { goto } from "$app/navigation"; import { profileClient, userClient } from "$lib/api"; import { profile } from "$lib/stores/profile"; import { user } from "$lib/stores/user"; -import type { LayoutLoad } from "./$types"; export const ssr = false; export const prerender = true; @@ -45,45 +45,3 @@ export const load: LayoutLoad = async ({ url }) => { return; } }; - -// export const load: LayoutLoad = async ({ url }) => { -// // Case 1: No token and accessing protected route -// if (!token.value && !isPublicRoute(url.pathname)) { -// await goto("/login/"); -// user.clear(); -// return; -// } -// -// // If we have a token, verify it -// if (token.value) { -// try { -// const verified = await userClient.verifyJWT({}); -// if (!verified.user) { -// throw new Error("Invalid token"); -// } -// user.value = verified.user; -// if (!profile.id) { -// const response = await profileClient.listProfiles({}); -// profile.value = response.profiles[0]; -// } -// -// // Redirect to home if trying to access login page while authenticated -// if (isPublicRoute(url.pathname) && user.isLoggedIn()) { -// await goto("/"); -// } -// return; -// } catch (error) { -// // Token verification failed, clean up -// logout(); -// user.clear(); -// throw new Error("Token verification failed: " + error); -// } -// } -// -// // No token and trying to access protected route -// if (!isPublicRoute) { -// await goto("/login"); -// } -// -// return; -// }; diff --git a/web/src/routes/login/reset/+page.svelte b/web/src/routes/login/reset/+page.svelte index b0f5a02..26bce05 100644 --- a/web/src/routes/login/reset/+page.svelte +++ b/web/src/routes/login/reset/+page.svelte @@ -6,7 +6,6 @@ import { toast } from 'svelte-sonner'; import { userClient } from '$lib/api'; import { ConnectError } from '@connectrpc/connect'; - import { token } from '$lib/stores/common'; import { goto } from '$app/navigation'; import { user } from '$lib/stores/user'; @@ -20,15 +19,14 @@ const isEmail = username.includes('@'); try { - const response = await userClient.verifyOTP({ + await userClient.verifyOTP({ identifier: { case: isEmail ? 'email' : 'username', value: username }, otp }); - token.value = response.token ?? null; - const verified = await userClient.verifyJWT({ token: token.value }); + const verified = await userClient.verifyJWT({}); if (verified.user) { user.value = verified.user; await goto('/'); diff --git a/web/src/routes/router/+page.svelte b/web/src/routes/router/+page.svelte index 65edd8b..e8fbcf5 100644 --- a/web/src/routes/router/+page.svelte +++ b/web/src/routes/router/+page.svelte @@ -216,8 +216,8 @@ async function bulkDelete(rows: Router[], action: string) { try { - // const confirmed = confirm(`Are you sure you want to ${action} ${rows.length} routers?`); - // if (!confirmed) return; + const confirmed = confirm(`Are you sure you want to ${action} ${rows.length} routers?`); + if (!confirmed) return; switch (action) { case 'delete':