我有反应节点快递应用程序。在客户端,我正在使用这样的 react-router:
export default function App() {
return (
<div className="App">
<Router>
<MenuBar/>
<Switch>
<Route exact path="/" component={Main}/>
<Route path="/signin" component={SignIn}/>
<Route path="/signup" component={SignUp}/>
<Route path="/search" component={Search}/>
<Route path="/post" component={Post}/>
</Switch>
</Router>
</div>
);
}
在服务器端,我有使用本地和谷歌策略的护照。成功登录后,当客户端从 axios 调用服务器时,我看到 req.user 存在于服务器端,所以我猜这是检查用户是否登录的一种方法。
我的问题是,如果我希望我的反应应用程序根据用户的登录状态具有不同的行为,例如,注销按钮而不是登录用户的登录按钮,并且“/post” URL 仅适用于登录用户(重定向如果用户未登录,则为“/”),如何在客户端存储用户登录状态?
据我了解,在刷新页面时将这些数据存储在 Context 或 Redux 中会出现问题,因为刷新后数据会消失,对吧?我必须使用
useEffect((//axios call to check auth state)=>,[])
在路由器的每个组件中并根据服务器的响应更新本地状态?有没有更好的办法?
元芳怎么了
大话西游666
蝴蝶不菲
随时随地看视频慕课网APP
相关分类