Я пытаюсь обезопасить все свои маршруты в реакции на то, что я пробую одну логи c, но она не работает так, как я хочу.
Я использую приложение. js файл в том, что у меня есть мой файл маршрутов. Я использую функциональный компонент.
Мой код в приложении. js:
export default function App(props) {
useEffect(() => {
}, []);
var logged = null
var user = firebase.auth().currentUser;
if (user) {
logged = true
console.log("user exist", user);
} else {
logged = false
console.log("user don't exist", logged);
}
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
//fakeAuth.isAuthenticated === true ? (
logged === true ? (
<Component {...props} />
) : (
<Redirect to="/signIn" />
)
}
/>
);
<PrivateRoute path="/features" component={FeaturePage} />
}
Этот код работает нормально, но когда я обновляю страницу или пытаюсь go на URL из браузера это не работает.
Когда я пытаюсь добавить логи c в:
var logged = null
useEffect(() => {
// CLEAN UP
var user = firebase.auth().currentUser;
if (user) {
logged = true
console.log("user exist", user);
} else {
logged = false
console.log("user don't exist", logged);
}
return () => {
document.querySelector('.first-row').style.position = '';
};
}, []);
Это не работает, мой вопрос, как создать мой файл приложения. js проверяет, вошел ли пользователь в систему или нет каждый раз, когда пользователь открывает маршрут из браузера или любым другим способом. Он должен знать, вошел ли он в систему или нет.
Firebase, приведите несколько примеров, или любой ответ будет оценен.