'use client'; import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { useAuth } from '@/lib/auth'; export default function ProtectedRoute({ children }: { children: React.ReactNode }) { const router = useRouter(); const { user, isLoading } = useAuth(); useEffect(() => { // 如果非加载状态且用户未登录,重定向到登录页 if (!isLoading && !user) { console.log('ProtectedRoute: 未登录,重定向到登录页'); // 保存当前URL以便登录后可以返回 const currentUrl = window.location.href; router.push(`/login?redirect=${encodeURIComponent(currentUrl)}`); } }, [isLoading, user, router]); // 如果正在加载,显示加载指示器 if (isLoading) { return (
加载中...