我目前正在使用React Js开发Web平台。我已经将后端令牌存储到我的本地存储中,但一旦用户成功登录,他就不应该用浏览器返回箭头单击返回。他应该坚持在同一个页面,那么我怎么能在react js中做到这一点呢?我可以在那里使用useEffect钩子吗?或者我必须为此写任何条件?只有点击注销按钮,他应该回来,而不是浏览器回来箭头。有些人使用componentDidMount,但我在功能组件中,所以我使用useEffect,但它不起作用。我尝试了多种方法,但无法找到解决方案。如何在react js中实现?
先谢了。
2条答案
按热度按时间6l7fqoea1#
您可以使用用户上下文,在登录时,用户信息存储在localStorage和上下文API中。
那么只要你正确地实现了你的用户上下文,你的数据就会在整个网站上持久化。需要明确的是,如果正确实现了上下文,按下back将不会清除localStorage或user状态。
我担心,如果你试图在一个功能组件中实现它,数据将在重新渲染时被擦除。
如果您想检查用户是否已登录,则可以修改站点,使其仅允许已登录的用户访问,方法是:
或者在你的路线上
7qhs6swi2#
我认为您可以创建一个保护路由功能,将获取的令牌存储在本地存储中,并给予一个条件,即只要令牌可用,就不允许用户看到登录页面,然后您可以在handlogout中从本地存储中清除令牌