"use client"; import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import { useAuthStore } from "@/lib/stores/auth-store"; /** * 认证守卫组件 * 检查用户是否已登录,未登录时重定向到登录页 */ export function AuthGuard({ children }: { children: React.ReactNode }) { const router = useRouter(); const { user, token } = useAuthStore(); const [checked, setChecked] = useState(false); useEffect(() => { // zustand persist 从 localStorage 恢复是异步的,需要等待一帧 if (!user || !token) { router.replace("/login"); } else { setChecked(true); } }, [user, token, router]); if (!checked) { return (