认证后禁止通过后退浏览器按钮reactjs访问登录页面

时间:2019-06-30 11:06:06

标签: reactjs react-router

我正在尝试开发一个应用程序,其中在用户执行登录操作并将其重定向到个人资料页面时,用户具有登录页面,个人资料页面和注销页面,问题是当用户按下浏览器时后退按钮,他可以转到登录页面。我该怎么禁止呢?

我有一个withAuth HOC,评论部分是我尝试过的内容:

使用Auth(ComponentToProtect,shouldRedirect)导出默认函数{

返回类扩展了组件{     状态= {       加载:是的,       重定向:false,       isAuthenticated:否     };

componentDidMount() {
  fetch("https://avagram.herokuapp.com/checkToken", {
    headers: {
      "x-access-token": sessionStorage.getItem("token")
    }
  })
    .then(res => {
      if (res.status === 200) {
        this.setState({ loading: false, isAuthenticated: true });
      } else {
        const error = new Error(res.error);
        throw error;
      }
    })
    .catch(err => {
      console.error(err);
      this.setState({ loading: false, redirect: true });
    });
}

render() {
  const { loading, redirect, isAuthenticated } = this.state;
  if (loading) {
    return <LoadingComponent />;
  }
  if (redirect && shouldRedirect) {
    return <Redirect to="/" />;
  }
  // if (isAuthenticated) {
  //   return <Redirect to="/secret" />;
  // }
  return (
    <React.Fragment>
      <NavBar {...this.state} />
      <ComponentToProtect {...this.props} {...this.state} />
    </React.Fragment>
  );
}

}; }

我希望不能通过按“后退”按钮返回登录页面,但是通过按浏览器的“后退”按钮可以返回登录页面

0 个答案:

没有答案