我想使用身份验证来创建安全路由。我已经在 App.jsx 文件中定义了路由。我使用“Route”来定义要渲染的组件。
在 App.jsx 中
<Route
path='/dashboard'
exact={true}
render={(props) => <Dashboard {...props} user={user}
handleChildFunc={this.handleChildFunc}/>}
/>
上面的代码运行没有任何问题。我想让它像下面这样固定。
<PrivateRoute
path='/dashboard'
exact={true}
render={(props) => <Dashboard {...props} user={user}
handleChildFunc={this.handleChildFunc}/>}
/>
在 PrivateRoute.jsx 中
const PrivateRoute = ( props ) => {
const user = "token from cookie"; // i will fetch token stored in cookie
if(user !== null) {
return <Route />;
}
else {
return <Redirect to="login" />
}
}
如果令牌存在,则渲染一个组件。否则,重定向到/login。
你可以拥有你的PrivateRoute
like,
<PrivateRoute
path='/dashboard'
exact={true}
component={Dashboard}
handleChildFunc={this.handleChildFunc}
/>
const PrivateRoute = ({ component: Component, handleChildFunc, ...rest }) => {
const user = "token from cookie";
return <Route {...rest} render={(props) => (
user !== null
? <Component {...props} user={user} handleChildFunc={handleChildFunc}/>
: <Redirect to='/login' />
)}
/>
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)