From caf9862f4f3a4b7e44c0f2913a13cf7e09569b21 Mon Sep 17 00:00:00 2001 From: Sanju Sivalingam Date: Wed, 18 Feb 2026 22:43:02 +0530 Subject: [PATCH] feat: handle unverified login with redirect to verify-email --- web/src/lib/api/auth.remote.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/web/src/lib/api/auth.remote.ts b/web/src/lib/api/auth.remote.ts index 8ef0320..2a60987 100644 --- a/web/src/lib/api/auth.remote.ts +++ b/web/src/lib/api/auth.remote.ts @@ -2,6 +2,7 @@ import { redirect } from '@sveltejs/kit'; import { form, getRequestEvent, query } from '$app/server'; import { auth } from '$lib/server/auth'; import { signupSchema, loginSchema } from '$lib/schema/auth'; +import { APIError } from 'better-auth'; export const signup = form(signupSchema, async (user) => { await auth.api.signUpEmail({ body: user }); @@ -10,7 +11,17 @@ export const signup = form(signupSchema, async (user) => { export const login = form(loginSchema, async (user) => { const { request, url } = getRequestEvent(); - await auth.api.signInEmail({ body: user, headers: request.headers }); + try { + await auth.api.signInEmail({ body: user, headers: request.headers }); + } catch (err: unknown) { + if ( + err instanceof APIError && + err.body?.message?.toLowerCase().includes('email not verified') + ) { + redirect(307, '/verify-email'); + } + throw err; + } const next = url.searchParams.get('redirect') || '/dashboard'; redirect(303, next); });