From b593b19d4b8cf61baee029b66029cef21196133f Mon Sep 17 00:00:00 2001 From: Rajpreet0 Date: Fri, 28 Nov 2025 20:19:04 +0100 Subject: [PATCH] optimized auth requests to the server --- src/hooks/useAuth.ts | 3 +-- src/middleware.ts | 24 ++++++++++++++---------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/hooks/useAuth.ts b/src/hooks/useAuth.ts index b8146e4..5d12552 100644 --- a/src/hooks/useAuth.ts +++ b/src/hooks/useAuth.ts @@ -91,9 +91,8 @@ export const useAuth = () => { toast.success("Erfolgreich eingeloggt 🎉"); - // Navigate and refresh + // Navigate to dashboard (no refresh needed - middleware handles it) router.push("/dashboard"); - router.refresh(); return true; } catch (err) { diff --git a/src/middleware.ts b/src/middleware.ts index 439dc96..eba9544 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -3,6 +3,20 @@ import { createServerClient } from "@supabase/ssr"; import { NextResponse, type NextRequest } from "next/server"; export async function middleware(request: NextRequest) { + // Protected routes + const protectedRoutes = ["/dashboard", "/profile", "/trainings", "/courses"]; + const authRoutes = ["/login", "/register"]; + + const isProtectedRoute = protectedRoutes.some((route) => + request.nextUrl.pathname.startsWith(route) + ); + const isAuthRoute = authRoutes.some((route) => request.nextUrl.pathname.startsWith(route)); + + // Skip auth check if not a protected or auth route + if (!isProtectedRoute && !isAuthRoute) { + return NextResponse.next({ request }); + } + let supabaseResponse = NextResponse.next({ request }); const supabase = createServerClient( @@ -28,22 +42,12 @@ export async function middleware(request: NextRequest) { data: { user }, } = await supabase.auth.getUser(); - // Protected routes - const protectedRoutes = ["/dashboard", "/profile", "/trainings", "/courses"]; - const isProtectedRoute = protectedRoutes.some((route) => - request.nextUrl.pathname.startsWith(route) - ); - if (!user && isProtectedRoute) { const url = request.nextUrl.clone(); url.pathname = "/login"; return NextResponse.redirect(url); } - // Auth routes (redirect if already logged in) - const authRoutes = ["/login", "/register"]; - const isAuthRoute = authRoutes.some((route) => request.nextUrl.pathname.startsWith(route)); - if (user && isAuthRoute) { const url = request.nextUrl.clone(); url.pathname = "/dashboard";