После авторизации и успешной переадресации на страницу при перезагрузке возвращает на главную

Разрабатываю небольшое приложение (React js - фронтенд, Python3.10 бекенд). Реализовал регистрацию и авторизацию, после которой происходит перенаправление на главную страницу (использую хук useNavigate). При попытке обновить страницу или перейди на другие, которые требуют авторизации, происходит редирект на мою начальную страницу. Не могу понять в чем проблема.

Мой компонент Router:

const AppRouter = () => {

    const [base, resources, reg, log] = publicRoutes
    const [main, fuzzy_log, fuzzy_graphs] = authRoutes

    return (
        <Routes>
            <Route path={base.path} element={<base.Component/>}/>
            <Route path={resources.path} element={<resources.Component/>}/>
            <Route path={reg.path} element={<reg.Component/>}/>
            <Route path={log.path} element={<log.Component/>}/>

            <Route path={main.path} element={
                <LoginReq>
                    {<main.Component/>}
                </LoginReq>
            }/>

            <Route path={fuzzy_log.path} element={
                <LoginReq>
                    {<fuzzy_log.Component/>}
                </LoginReq>
            }/>

            <Route path={fuzzy_graphs.path} element={
                <LoginReq>
                    {<fuzzy_graphs.Component/>}
                </LoginReq>
            
            }/>
            <Route path="*" element={<Navigate to='/'/>}/>

        </Routes>
    )
}

Компонент для проверки на авторизацию

const LoginReq = ({children}) => {
    const {user} = useContext(Context)
    const auth = user.isAuth
    {console.log(auth)}

    if (!auth) {
        return <Navigate to={BASE_ROUTE}></Navigate>
    }

    return children;
}

Компонент страницы авторизации и регистрации

const Login = observer(() => {
    const {user} = useContext(Context)
    const location = useLocation()
    const isLogin = location.pathname === LOG_ROUTE
    const [email, setEmail] = useState('')
    const [password, setPassword] = useState('')
    const navigate = useNavigate()

    const click = async () => {
        try {
            if (isLogin) {
                const response = await login(email, password)
                if (response.data.status === 'ok') {
                    user.setIsAuth(true)
                    {console.log(response.data.tokens)}
                    localStorage.setItem('tokens', JSON.stringify(response.data.tokens))
                    navigate(MAIN_ROUTE)
                } else {
                    alert(response.data.msg)
                }
            } else {
                const response = await registration(email, password)
                if (response.data.status === 'ok') {
                    navigate(LOG_ROUTE)
                } else {
                    alert(response.data.msg)
                }
            }
        } catch (e) {
            alert(e)
        }
    }

    return (
        <Form className="inputForm">
            <Form.Control
                className="type-1"
                placeholder="Введите email"
                value={email}
                onChange={e => setEmail(e.target.value)}
            />
            <Form.Control
                className="type-1"
                placeholder="Введите пароль"
                type="password"
                value={password}
                onChange={e => setPassword(e.target.value)}
            />
            <Row className="registration">
                {isLogin ?
                    <div>
                        Нет аккаунта?, <NavLink to={REG_ROUTE}>Регистрация</NavLink>
                    </div>
                    :
                    <div>
                        Есть аккаунт?, <NavLink to={LOG_ROUTE}>Войдите</NavLink>
                    </div>
                    }   
               
                <Button className="auth-buttons" onClick={click}>
                    {isLogin ? 'Войти': 'Регистрация'}
                </Button>
            </Row>

        </Form>
    )
})

export default Login;

Ответы (0 шт):