2016-07-04 85 views
0

我正在使用react路由器并考虑实施auth。我想拦截大多数请求并检查用户是否被授权,如果没有,请重定向他们。React路由器 - 在路由上应用相同的Enter功能

我打算这样做的方法是使用Route组件中的onEnter钩子。有没有一种简单的方法可以在所有路线上应用这种行为,并且“退出”这种行为不适用的少数几种方式,而不必将这种onEnter函数添加到几乎所有路线中?

回答

1

我在一组私人路线之间创建了一条私人路线。

<Route component={Authorization} accessRoles={['admin', 'registered']}> ... This routes which need to authorization ... </Route>

我也送accessRoles到组件授权检查的作用。

+0

好的。在你的授权组件中,如果用户没有被授权,你实现了什么样的钩子/函数来重定向?你在render()函数中做了吗? – Ben

+0

我在cdm/cwrp上创建了功能,checkAuth(道具){const_accessRoles} = props.route;如果(!checkAuth(accessRoles,props.auth)){0},则使用history.pushState(null,'/ signin?next ='+ props.location.pathname); } }' – inthedark122