反应路由验证

时间:2018-04-19 06:45:05

标签: reactjs react-router react-redux

我正在尝试为反应路由创建服务器端auth防护。我的流程就像......只要在前端点击路由,就会进行后端调用以检查用户的会话是否存在于数据库中(因为我们将会话存储在数据库中以跟踪会话)。

这是我的应用组件代码:

org.springframework.data.mongodb.core.ReactiveMongoTemplate=DEBUG

我已将经过身份验证的路由隔离到单独的类组件中 像:

    export default function App() {
  const routeComponents = routes.map(({ path, component }) => <AuthenticatedRoute exact path={path} component={component} props={'exact'} key={path} />);

  return (
    <div>
      {window.location.origin === constant.PRODUCTION_DOMAIN_NAME && <Route
        path="/"
        render={({ location }) => {
          if (typeof window.ga === 'function') {
            window.ga('set', 'page', location.pathname + location.search);
            window.ga('send', 'pageview');
          }
          return null;
        }}
      />}
      <Switch>
        <Route path="/login" component={LoginPage} />
        {routeComponents}
      </Switch>
      <ToastContainer autoClose={constant.TOASTER_FACTOR} closeButton={false} hideProgressBar />
    </div>
  );
}

App.propTypes = {
  component: PropTypes.any,
};

但我遇到登录页面被重定向两次的问题。有人能让我知道更好的方法吗?

0 个答案:

没有答案