Javascript React路由器4身份验证和重定向
我正在尝试使用React路由器为我的应用程序实现身份验证系统。 但是我很难找到一个正确的方法Javascript React路由器4身份验证和重定向,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我正在尝试使用React路由器为我的应用程序实现身份验证系统。 但是我很难找到一个正确的方法 export default class App extends React.Component { constructor(props){ super(props); this.state = { logged : false } } isUserConnected(){ // Contact server to know if user
export default class App extends React.Component {
constructor(props){
super(props);
this.state = {
logged : false
}
}
isUserConnected(){
// Contact server to know if user is connected or not
}
render() {
return (
<Router>
<Switch>
<Route exact path="/" component={Homepage} />
<Route path="/privatePart" component={Application} />
<Route path="/login" component={LoginRedirection} />
<Route component={NotFound} />
</Switch>
</Router>
)
}
}
导出默认类App扩展React.Component{
建造师(道具){
超级(道具);
此.state={
记录:错误
}
}
isUserConnected(){
//联系服务器以了解用户是否已连接
}
render(){
返回(
)
}
}
在LoginDirection组件中,有一个登录表单,用于发送帖子以连接用户。但该组件如何在应用程序组件中将logged设置为true?
也许我应该学复述?使用它实现身份验证可能更简单?Redux可能是一种解决方案,但您可以使用React和React路由器来实现这一点 使用
react router
,您可以使用属性oneter
。例如,您可以使privatePart URL仅可供具有以下内容的登录用户访问:
<Route path="/privatePart" component={Application} onEnter={requireAuth}/>
if (localStorage.getItem("logged") === null) {
return false;
} else {
return true;
}
其中username是登录成功后添加到本地存储的密钥。我认为路由器4中的onEnter prop已被object替换。对于您的anwser,使用本地存储似乎是一个好主意!顺便说一句,如果我使用redux,刷新和松散数据问题仍然是个问题?欢迎:)是的,使用redux,刷新时数据也会丢失,但是有一些解决方案,如或。不过,我认为使用本地存储通常是不错的。归根结底,这在很大程度上取决于系统的完整架构和登录过程!我想在学习Redux之前我应该等一等,但这对我以后会有帮助。非常感谢您的帮助:)