'use client' import { useSession } from 'next-auth/react' import { useRouter } from 'next/navigation' import { useEffect, useState } from 'react' interface AuthGuardProps { children: React.ReactNode } export default function AuthGuard({ children }: AuthGuardProps) { const { data: session, status } = useSession() const router = useRouter() const [isChecking, setIsChecking] = useState(true) useEffect(() => { if (status === 'loading') { return // Ждем загрузки сессии } if (status === 'unauthenticated' || !session) { console.log('[AuthGuard] Нет активной сессии, перенаправление на логин') router.replace('/login') return } if (status === 'authenticated' && session) { console.log('[AuthGuard] Сессия активна, разрешаем доступ') setIsChecking(false) } }, [session, status, router]) // Показываем загрузку пока проверяем аутентификацию if (status === 'loading' || isChecking) { return (

Проверка аутентификации...

) } // Если нет сессии, не рендерим детей (будет перенаправление) if (status === 'unauthenticated' || !session) { return null } // Если все в порядке, рендерим детей return <>{children} }