Думаю, я всегда мог бы добавить логин в WillTransitionTo
, который сделал бы вызов в магазин через Redux, чтобы проверить, что пользователь вошел в систему, но это кажется немного взломанным, тем более, так как я должен добавить логику WillTransitionTo()
к каждому компоненту.Чистый способ перенаправления пользователя, который не вошел в систему с помощью React?
У кого-нибудь есть идеи? Я собираюсь работать над подключением чего-то к isAuthorized
с помощью onEnter
.
Это корневой корень приложения, который выполняет подключение к ответному маршрутизатору.
реагируют-маршрутизатор: 2.0.4
реагируют: 15.0.2
const store = configureStore();
function isAuthorized() {
}
render(
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/" component={Application} onEnter={isAuthorized}>
<IndexRoute component={DashboardPage} />
<Route path="login" component={LoginPage} />
<Route path="dashboard" component={DashboardPage} />
<Route path="items" component={DashboardPage} />
<Route path="item-categories" component={DashboardPage} />
<Route path="modifiers" component={DashboardPage} />
<Route path="taxes" component={DashboardPage} />
<Route path="discounts" component={DashboardPage} />
<Route path="orders" component={DashboardPage} />
<Route path="users" component={DashboardPage} />
</Route>
</Router>
</Provider>,
document.getElementById("application")
);
Обратите внимание, что в примере Идент потока использует localStorage
сохраняться userAccess маркеры и т.д. Я действительно не хотят использовать localStorage
или куки в это время. Я хочу свести к минимуму сложность и сохранить состояние входа в хранилище (state.user). Я специально не хочу объяснять причину этого, кроме как сказать, что существует большой объем информации, которая приходит на этапе аутентификации, который необходимо сохранить в хранилище.
Вы были очень неясными с контекстом. Мы можем понять, что вы хотите, чтобы ошибка аутентификации перенаправлялась на страницу входа в систему, но вы не упоминаете о своем маршрутизаторе и настройке auth. «Чистый путь» будет полностью зависеть от этих двух вещей, поскольку маршрутизатор сделает перенаправление, а стратегия auth предоставит вам крючки для определения того, кто имеет доступ. – gelliott181
Как вы упомянули, React, я предполагаю, что вы используете свой маршрутизатор. Вот пример сценария реакции-маршрутизатора, который должен быть хорошей отправной точкой. https://github.com/ReactTraining/react-router/tree/master/examples/auth-flow – gelliott181
Позвольте мне изменить вопрос с большим контекстом, спасибо, ребята. Пример с потоком данных не очень полезен. – Spets