Files
codeg/src/app/page.tsx
2026-03-25 14:26:26 +08:00

45 lines
1.0 KiB
TypeScript

"use client"
import { useEffect } from "react"
import { useRouter } from "next/navigation"
import { isDesktop } from "@/lib/platform"
export default function Page() {
const router = useRouter()
useEffect(() => {
if (isDesktop()) {
router.replace("/welcome")
return
}
// Web mode: validate token before entering app
const token = localStorage.getItem("codeg_token")
if (!token) {
router.replace("/login")
return
}
// Verify token is still valid
fetch("/api/health", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: "{}",
})
.then((res) => {
if (res.ok) {
router.replace("/welcome")
} else {
localStorage.removeItem("codeg_token")
router.replace("/login")
}
})
.catch(() => {
// Server unreachable
localStorage.removeItem("codeg_token")
router.replace("/login")
})
}, [router])
return null
}