2016-07-04 89 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