反应路由器,重定向,firebase身份验证和专用路由:管理它的最佳方法

时间:2018-10-27 19:08:22

标签: reactjs react-router firebase-authentication

我正在使用reactjs开发一个前端管理员,我想仅在通过身份验证后才授予对所有页面(包括该页面的导航和常规模板)的访问权限。如果用户未通过身份验证,我只想显示登录表单,仅此而已。我已经做到了:

render() {

if (this.state.isAuthenticated === false) {
  return (
    <div className="App">
      <BrowserRouter>
        <div>
          <Switch>
            <Route path="/" component={Login} />
          </Switch>
        </div>
      </BrowserRouter>
    </div>
  );
}

return (
  <div className="App">
    <BrowserRouter>
      <div>
        <Navigator isAuthenticated={this.state.isAuthenticated} />
        <Switch>
          <Route path="/login" component={Login} />
          <PrivateRoute isAuthenticated={this.state.isAuthenticated} path="/" exact component={Home} />
          <PrivateRoute isAuthenticated={this.state.isAuthenticated} path="/contact" exact component={Contact} />
          <PrivateRoute isAuthenticated={this.state.isAuthenticated} path="/shop" exact component={Shop} />
          <Route render={() => <h1>Page not found</h1>} />
        </Switch>
      </div>
    </BrowserRouter>
  </div>
);
 }
 }

这是个好方法还是不好?我怎样才能做得更好?

谢谢

0 个答案:

没有答案