Вам нужно где-то сохранить свое аутентифицированное состояние и проверить его при загрузке приложения. React - это инфраструктура веб-интерфейса, и если вы перезагрузите приложение, оно вернется в состояние по умолчанию, поскольку у платформы нет возможности сохранить постоянное состояние с помощью перезагрузок, поэтому вы как будто впервые появляетесь в своем приложении. Есть несколько различных способов go об этом, но самые простые - это localStorage или cook ie.
Когда вы аутентифицируетесь, вы можете сохранить в localStorage следующим образом:
async login() {
const email = this.state.email
const password = this.state.password
await fakeAuth.authenticate(() => {
//Set an item to browsers localStorage
localStorage.setItem("Auth", "Your auth state here");
this.setState({
redirectToReferrer: true
})
})
}
Затем вы можете проверить localStorage, когда ваше приложение загружается, чтобы увидеть, вошел ли пользователь в систему следующим образом:
localStorage.getItem('Auth');
Вы можете прочитать о браузерах localStorage здесь Браузеры LocalStorage
К вашему сведению: я понимаю, что вы находитесь на начальных этапах настройки аутентификации, но обычно вы должны передать токен аутентификации или токен сеанса из своего бэкэнда, а затем проверить этот токен для каждого маршрута, чтобы убедиться, что пользователь вошел в систему. Просто заявить, что пользователь вошел в веб-интерфейс, невероятно небезопасно. Каждый маршрут должен быть защищен определенным типом меры аутентификации. Вы можете посмотреть Json веб-токены или что-то в этом роде. Затем вы можете передать токен в свой интерфейс и сохранить этот токен в localStoage. Затем, когда ваше приложение загружается, вы можете проверить этот токен, чтобы узнать, аутентифицирован ли пользователь или нет, и проверить действительный токен для каждого маршрута.