Я обычно создаю PrivateRoute
компонент, который проверяет, вошел ли пользователь в систему (через prop, redux, localalstorage или что-то еще).
Что-то вроде:
import { Route, Redirect } from 'react-router-dom'
const PrivateRoute = ({ isLoggedIn, ...props }) =>
isLoggedIn
? <Route { ...props } />
: <Redirect to="/login" />
В вашемЕсли вы можете подключить этот PrivateRoute
компонент к той части вашего штата, где вы обрабатываете аутентификацию:
function mapStateToProps(state) {
return {
isLoggedIn: !!state.authenticationProperty
};
}
export default connect(mapStateToProps)(PrivateRoute)
В маршрутизаторе я использую его для моих, ну, в общем, частных маршрутов:)
<Switch>
<PrivateRoute path="/staff-meetings" component={StaffMeetingsPage} />
<Route path="/login" component={Login}/>
</Switch>