反应路由器访问控制

时间:2019-11-07 16:28:58

标签: reactjs react-router

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

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

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

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

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

我成功制作了一个UnselectedFocused组件,该组件检查权限,然后决定是呈现某些组件还是重定向到登录页面或其他适当的页面。

这里是完整的tutorial

本教程未介绍的一种复杂性是,您不想检查 just (如果用户已登录),还不想拥有用户拥有的权限以及他们的权限是否满足用户的条件。路线。您可以根据需要定义。您可以要求用户在权限列表中至少拥有1个权限,可以要求用户具有权限列表中的所有权限。

对于您的情况,我只会有3个ControlTemplate,例如:

PrivateRoute

如果用户转到其中一条路线,则AuthenticatedRoute将检查他们是否具有权限,如果有,则呈现PrivateRoute,如果没有,则重定向到某个适当的页面他们确实有权访问。