我有一条使用正则表达式通过React动态生成视图的路由。
<Route path='/(one|two|three)/' component={View} />
我想做一些访问控制,以便只有特定的用户才能访问各个端点。看起来就像“您属于允许访问视图1,但视图2和3被拒绝的组的一部分”。
在这样定义的路由中这可能吗?分别定义路线然后定义授权会更容易吗?
任何帮助都会很棒!
答案 0 :(得分:0)
我成功制作了一个Unselected
或Focused
组件,该组件检查权限,然后决定是呈现某些组件还是重定向到登录页面或其他适当的页面。
这里是完整的tutorial。
本教程未介绍的一种复杂性是,您不想检查 just (如果用户已登录),还不想拥有用户拥有的权限以及他们的权限是否满足用户的条件。路线。您可以根据需要定义。您可以要求用户在权限列表中至少拥有1个权限,可以要求用户具有权限列表中的所有权限。
对于您的情况,我只会有3个ControlTemplate
,例如:
PrivateRoute
如果用户转到其中一条路线,则AuthenticatedRoute
将检查他们是否具有权限,如果有,则呈现PrivateRoute
,如果没有,则重定向到某个适当的页面他们确实有权访问。