diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index b22fb4f..1fba40e 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -8,6 +8,7 @@ import { I18nProvider } from "@/i18n/I18nContext";
import { SessionProvider } from "@/context/SessionContext";
import ActiveSessionBanner from "@/components/ActiveSessionBanner";
import MainContentWrapper from "@/components/MainContentWrapper";
+import AuthListener from "@/components/AuthListener";
const inter = Inter({ subsets: ["latin"] });
@@ -46,6 +47,7 @@ export default function RootLayout({
+
diff --git a/src/components/AuthListener.tsx b/src/components/AuthListener.tsx
new file mode 100644
index 0000000..c698366
--- /dev/null
+++ b/src/components/AuthListener.tsx
@@ -0,0 +1,28 @@
+'use client';
+
+import { useEffect } from 'react';
+import { createClientComponentClient } from '@supabase/auth-helpers-nextjs';
+
+export default function AuthListener() {
+ const supabase = createClientComponentClient();
+
+ useEffect(() => {
+ // Listener für Auth-Status Änderungen
+ const {
+ data: { subscription },
+ } = supabase.auth.onAuthStateChange((event) => {
+ if (event === 'SIGNED_OUT') {
+ console.log(`[Auth] Event ${event} detected, forcing reload...`);
+ // Zwinge den Browser zum kompletten Neuladen, um Caches zu leeren
+ // Wir nutzen window.location.href statt router.push für einen harten Reload
+ window.location.href = '/';
+ }
+ });
+
+ return () => {
+ subscription.unsubscribe();
+ };
+ }, [supabase]);
+
+ return null;
+}