diff --git a/backend/routers/auth.py b/backend/routers/auth.py index 6f83e92..494c1ae 100644 --- a/backend/routers/auth.py +++ b/backend/routers/auth.py @@ -289,7 +289,9 @@ async def verify_email(token: str): prof = cur.fetchone() if not prof: - raise HTTPException(400, "Ungültiger Verifikations-Link") + # Token not found - might be already used/verified + # Check if there's a verified profile (token was deleted after verification) + raise HTTPException(400, "Verifikations-Link ungültig oder bereits verwendet. Falls du bereits verifiziert bist, melde dich einfach an.") if prof['email_verified']: raise HTTPException(400, "E-Mail-Adresse bereits bestätigt") diff --git a/frontend/src/pages/Verify.jsx b/frontend/src/pages/Verify.jsx index 5ceef6d..111a3c6 100644 --- a/frontend/src/pages/Verify.jsx +++ b/frontend/src/pages/Verify.jsx @@ -33,10 +33,10 @@ export default function Verify() { setAuthFromToken(result.token, result.profile) setStatus('success') - // Redirect to dashboard after 2 seconds + // Redirect to dashboard after 1.5 seconds setTimeout(() => { - navigate('/dashboard') - }, 2000) + window.location.href = '/' + }, 1500) } else { setStatus('error') setError('Verifizierung erfolgreich, aber Login fehlgeschlagen') @@ -44,11 +44,13 @@ export default function Verify() { } catch (err) { const errorMsg = err.message || 'Verifizierung fehlgeschlagen' - // Check if already verified - if (errorMsg.includes('bereits bestätigt') || errorMsg.includes('already verified')) { + // Check if already verified or already used + if (errorMsg.includes('bereits bestätigt') || errorMsg.includes('already verified') || + errorMsg.includes('bereits verwendet') || errorMsg.includes('already used')) { setStatus('already_verified') + setError(errorMsg) // Show the actual message // Auto-redirect to login after 3 seconds - setTimeout(() => navigate('/login'), 3000) + setTimeout(() => { window.location.href = '/login' }, 3000) } // Check if token expired else if (errorMsg.includes('abgelaufen') || errorMsg.includes('expired')) { @@ -200,13 +202,19 @@ export default function Verify() {
- Deine E-Mail-Adresse wurde bereits verifiziert. - Du kannst dich jetzt anmelden. -
-- Du wirst gleich zum Login weitergeleitet... +
+ {error || 'Deine E-Mail-Adresse wurde bereits verifiziert. Du kannst dich jetzt anmelden.'}
+ {!error && ( ++ Du wirst gleich zum Login weitergeleitet... +
+ )} + {error && ( ++ Du wirst gleich zum Login weitergeleitet... +
+ )}