0

我有一条使用正则表达式通过 React 动态生成视图的路由。

<Route path='/(one|two|three)/' component={View} /> 

我想做一些访问控制,以便只有特定用户才能访问各种端点。它看起来像“您是允许访问视图 1,但视图 2 和 3 被拒绝的组的一部分”。

这可能在这样定义的路线中吗?单独定义路由然后定义授权会更容易吗?

任何帮助都是极好的!

4

1 回答 1

0

我已经成功地制作了一个PrivateRouteAuthenticatedRoute组件来检查权限,然后决定是渲染某个组件还是重定向到登录页面或其他适当的页面。

这是一个完整的教程

本教程未涵盖的一个复杂性是,您不想检查用户是否已登录,还要检查他们拥有的权限以及他们的权限是否满足路由条件。您可以根据需要定义它。您可以要求用户至少拥有权限列表中的一项,您可以要求他们拥有所有权限列表。

对于您的情况,我将只有 3 个PrivateRoute这样的:

<PrivateRoute path='/one' component={View1} permissionsRequired={["View1Permission"]}/> 
<PrivateRoute path='/two' component={View2} permissionsRequired={["View2Permission"]}/> 
<PrivateRoute path='/three' component={View3} permissionsRequired={["View3Permission"]}/> 

如果用户转到其中一个路由,PrivateRoute则将检查他们是否有权限,如果有,则渲染View,如果没有,则重定向到他们有权访问的某个适当页面。

于 2019-11-07T16:35:35.187 回答