diff options
Diffstat (limited to 'communities/red-right-hand/174bg.net/src/middleware.js')
| -rw-r--r-- | communities/red-right-hand/174bg.net/src/middleware.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/communities/red-right-hand/174bg.net/src/middleware.js b/communities/red-right-hand/174bg.net/src/middleware.js new file mode 100644 index 0000000..d9b9a6c --- /dev/null +++ b/communities/red-right-hand/174bg.net/src/middleware.js @@ -0,0 +1,31 @@ +import { NextResponse } from "next/server"; + +export async function middleware(request) { + let session = null; + + try { + const res = await fetch( + new URL("/api/auth/get-session", request.nextUrl.origin), + { + headers: { + cookie: request.headers.get("cookie") ?? "", + }, + }, + ); + session = await res.json(); + } catch { + // If session check fails, treat as unauthenticated + } + + if (!session?.user) { + const loginUrl = new URL("/login", request.url); + loginUrl.searchParams.set("callbackUrl", request.nextUrl.pathname); + return NextResponse.redirect(loginUrl); + } + + return NextResponse.next(); +} + +export const config = { + matcher: ["/secure/:path*"], +}; |
