diff --git a/shop/components/inactivity-tracker.tsx b/shop/components/inactivity-tracker.tsx index 8ba36b9..a7f0bb0 100644 --- a/shop/components/inactivity-tracker.tsx +++ b/shop/components/inactivity-tracker.tsx @@ -32,7 +32,22 @@ export function InactivityTracker() { // Prüfen, ob die Session auf dem Server noch gültig ist (z.B. wegen Login auf anderem Browser) const { data: { user }, error } = await supabase.auth.getUser(); - if (error || !user) { + if (error) { + // Nur bei echten Auth-Fehlern (z.B. ungültiges Token / Session gelöscht) abmelden. + // Netzwerkfehler wie "Failed to fetch" haben keinen HTTP-Status (error.status ist undefined). + const isAuthError = error.status === 400 || error.status === 401 || error.status === 403; + if (isAuthError) { + try { + await signOut(); + } catch (e) { + console.error("Fehler beim Server-Signout nach Session-Verlust:", e); + } + await supabase.auth.signOut(); + router.push("/auth/login?message=concurrent"); + router.refresh(); + } + } else if (!user) { + // Keine Fehlermeldung, aber auch kein User-Objekt (Sitzung abgelaufen/gelöscht) try { await signOut(); } catch (e) {