From 8b06a1414d147f942259ef26341c3c9a62b14745 Mon Sep 17 00:00:00 2001
From: rhpidfyre <brandon@rhpidfyre.io>
Date: Wed, 26 Mar 2025 21:11:43 -0400
Subject: [PATCH] web: switch to using `/api/session/validate` for determining
 if the user is not logged in

---
 web/src/app/_components/webpage.tsx | 35 ++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/web/src/app/_components/webpage.tsx b/web/src/app/_components/webpage.tsx
index 6119987..14c4ec9 100644
--- a/web/src/app/_components/webpage.tsx
+++ b/web/src/app/_components/webpage.tsx
@@ -1,8 +1,33 @@
+"use client"
+
+import { redirect } from "next/navigation";
+import { useEffect } from "react";
+
 import Header from "./header";
 
+async function login_check() {
+	try {
+		const response = await fetch("/api/session/validate")
+		if (response.ok) {
+			const logged_in = await response.json()
+			if (logged_in.code === 500) {
+				redirect("https://auth.staging.strafes.net/")
+			}
+		} else {
+			console.error("No response from /api/session/validate")
+		}
+	} catch (error) {
+		console.error("Error getting login status:", error)
+	}
+}
+
 export default function Webpage({children}: Readonly<{children?: React.ReactNode}>) {
-    return (<>
-        <Header/>
-        {children}
-    </>)
-}
\ No newline at end of file
+	useEffect(() => {
+		login_check()
+	}, [])
+
+	return <>
+		<Header/>
+		{children}
+	</>
+}