Я реализовал автоматический вход через SSO для моего корневого пути "/", чтобы упростить жизнь пользователя, перенаправив на "/ login" с PrivateRoute, и он работает нормально - он перенаправляет на / login, если не вошел в систему, и аутентифицируется через SSO:
const Routes = () => (
<div className="view-routes">
<ErrorBoundaryRoute path="/login" component={Login} />
<ErrorBoundaryRoute path="/loggedout" component={HomePanel} />
<Switch>
<ErrorBoundaryRoute path="/logout" component={Logout} />
<PrivateRoute path="/" component={HomePanel} hasAnyAuthorities={[AUTHORITIES.USER]} />
</Switch>
</div>
);
Проблема в том, что мой компонент Logout выглядит следующим образом:
export class Logout extends React.Component<ILogoutProps> {
componentDidMount() {
this.props.logout();
}
render() {
return (
<div className="p-5">
<h4>Logged out successfully!</h4>
<Redirect
to={{
pathname: '/loggedout'
}}
/>
</div>
);
}
}
Как вы можете видеть в Routes, / loggedout сопоставляется с той же HomePanel, но на этот раз через «обычный»маршрут, который должен избегать автоматической аутентификации.Он действительно выходит из системы, но когда он по какой-то причине перенаправляется в / loggedout, он сразу же после этого идет в путь "/", который снова вызывает автологин.
Мой вопрос: почему он просто не рисует мою HomePanel, а вместо этогоработает так, как будто снова прошел PrivateRoute?В случае, если реакция должна сработать, как мне справиться с выходом из системы в такой ситуации?