Javascript 如何在react with redux中授权路由?

Javascript 如何在react with redux中授权路由?,javascript,reactjs,redux,react-router,Javascript,Reactjs,Redux,React Router,在这里,我希望只有loggedin用户能够打开配置文件路由。最好的方法是什么 main.js let store = createStore(todoApp, applyMiddleware(thunkMiddleware)); render( <Provider store={store}> <Router history={browserHistory}> <div className="container"&

在这里,我希望只有loggedin用户能够打开配置文件路由。最好的方法是什么

main.js

let store = createStore(todoApp, applyMiddleware(thunkMiddleware));

render(
    <Provider store={store}>
        <Router  history={browserHistory}>
            <div className="container">
                <Route exact path="/" component={Login}/>
                    <Route path="/profile" component={Profile} />
            </div>
        </Router>
    </Provider>,
    document.getElementById('root')
)
let store=createStore(todoApp、applyMiddleware(thunk中间件));
渲染(
,
document.getElementById('root'))
)

您可以执行以下操作:

<Route path="/profile" component={RequiresAuth(Profile)} />

并创建一个身份验证功能,如:

function RequiresAuth(ComposedComponent) {
    class Authenticate extends Component {

        render() {
            if (!userAuthenticated) {      // Check if user is authenticated
                return null;
            } else {
                return (
                    <ComposedComponent {...this.props} />
                );
            }
        }
    }
}
功能要求授权(ComposedComponent){
类身份验证扩展组件{
render(){
如果(!userAuthenticated){//检查用户是否经过身份验证
返回null;
}否则{
返回(
);
}
}
}
}

您可以执行以下操作:

<Route path="/profile" component={RequiresAuth(Profile)} />

并创建一个身份验证功能,如:

function RequiresAuth(ComposedComponent) {
    class Authenticate extends Component {

        render() {
            if (!userAuthenticated) {      // Check if user is authenticated
                return null;
            } else {
                return (
                    <ComposedComponent {...this.props} />
                );
            }
        }
    }
}
功能要求授权(ComposedComponent){
类身份验证扩展组件{
render(){
如果(!userAuthenticated){//检查用户是否经过身份验证
返回null;
}否则{
返回(
);
}
}
}
}