From 3f33e6a98b09f34eebb7607ebfbe1304fa3a1c4f Mon Sep 17 00:00:00 2001 From: MOHAN Date: Sun, 5 Jul 2026 03:03:28 +0530 Subject: [PATCH] Fix login requiring a pre-existing saved key to work at all MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Login previously bailed out with "No API key found" unless a key from a prior signup already happened to be sitting in this browser's localStorage — meaning login was completely broken on any new device, browser, or after clearing storage, regardless of a correct password. /api/login now issues a real usable key on every successful login; the frontend just saves it. Co-Authored-By: Claude Sonnet 5 --- src/lib/api.ts | 8 ++++---- src/pages/Login.tsx | 11 ++--------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/lib/api.ts b/src/lib/api.ts index d4363de..75924e5 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -174,10 +174,10 @@ export const api = { req('/api/signup', { method: 'POST', body: JSON.stringify(body) }), login: (email: string, password: string) => - req<{ user_id: number; email: string; api_key_prefix: string }>('/api/login', { - method: 'POST', - body: JSON.stringify({ email, password }), - }), + req<{ user_id: number; email: string; api_key: string; mcp_connection: { url: string; header: string } }>( + '/api/login', + { method: 'POST', body: JSON.stringify({ email, password }) }, + ), me: (apiKey: string) => req('/api/me', { headers: authHeader(apiKey) }), diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx index 5b46483..9f3dad1 100644 --- a/src/pages/Login.tsx +++ b/src/pages/Login.tsx @@ -13,15 +13,8 @@ export default function Login() { setError(''); setLoading(true); try { - const savedKey = session.getKey(); - if (!savedKey) { - setError('No API key found. Please use your API key directly or re-generate it from a previous signup.'); - setLoading(false); - return; - } - // Verify credentials via /api/login then confirm key works - await api.login(form.email, form.password); - session.save(savedKey, form.email); + const result = await api.login(form.email, form.password); + session.save(result.api_key, result.email); navigate('/dashboard'); } catch (err: unknown) { setError(err instanceof Error ? err.message : 'Login failed');