参看文档上对于权限路由的疑问
{ path: '/list', component: './pages/list.js', Routes: ['./routes/PrivateRoute.js'] }
无权限使用list.js渲染,有权限使用PrivateRoute.js权限,可是判断是否有权限的地方在哪呢?
无权限使用list.js渲染,有权限使用PrivateRoute.js权限
这个说法是不正确的。应该是渲染都会经过 ./routes/PrivateRoute.js,所以判断是否有权限应该是你自己在 ./routes/PrivateRoute.js 这个里面实现。
@yutingzhao1991 在PrivateRoute.js里进行权限判断的话,如果有权限怎么选择路由呢,没有权限怎么选择路由呢,还是说在PrivateRoute.js里判断权限后通过umi/router跳转路由?
@jervainy 在antd-pro中有权限路由的例子,代码在
文件: src/pages/Authorized.js
目录: src/component/Authrized/
原理是在用作权限验证的组件中去判断是否拥有权限(src/component/Authrized/CheckPermissions.js),支持同步或者异步的鉴权方案。
对于 src/pages/Authorized.js组件(也就是路由表中配置的那个权限判断组件):
umi/redirect),也可以放一个提示的静态页面组件,根据不同的需要来编写。大致的实现思路是这样的,antd-pro中的鉴权使用的是localStorage的方案,也可以替换成请求接口的方案。
同觉得文档说得不清不楚,如果Routes数组里有多个元素是什么效果?
文件: src/pages/Authorized.js
目录: src/component/Authrized/
为什么路由上写的是在pages下面的文件,结果生效的文件却在component里面
令我困惑的是,config.js里,路由是这么写的
path: '/',
component: '../layouts/BasicLayout',
Routes: ['src/pages/Authorized'],
authority: ['admin', 'user'],
因为src/pages/ 下面并没有Authorized.js文件,所以我其实很迷糊
文档上哪里有进行介绍吗?是约定式路由的wrappers那一节吗?我看得不是很明白
文件: src/pages/Authorized.js
目录: src/component/Authrized/
为什么路由上写的是在pages下面的文件,结果生效的文件却在component里面令我困惑的是,config.js里,路由是这么写的
path: '/', component: '../layouts/BasicLayout', Routes: ['src/pages/Authorized'], authority: ['admin', 'user'],因为
src/pages/下面并没有Authorized.js文件,所以我其实很迷糊
文档上哪里有进行介绍吗?是约定式路由的wrappers那一节吗?我看得不是很明白
上面的讨论是基于 [email protected] 的路由配置结构,路由的 wrapper 配置项是 [email protected] 中新增的,利用它可以实现路由鉴权的能力达到与 [email protected] 中 Routes 配置一样的效果。
另外你提到的 src/pages/Authorized.js 文件不存在的问题可能是 antd-pro 的模板修改移动了位置,目前是在 src/utils/Authorized 位置。
Most helpful comment
@jervainy 在antd-pro中有权限路由的例子,代码在
文件:
src/pages/Authorized.js目录:
src/component/Authrized/原理是在用作权限验证的组件中去判断是否拥有权限(
src/component/Authrized/CheckPermissions.js),支持同步或者异步的鉴权方案。对于
src/pages/Authorized.js组件(也就是路由表中配置的那个权限判断组件):渲染路由表中对应的component
通过传入组件props的noMatch组件进行替换渲染,至于跳不跳转可以在noMatch组件里配置一个具有路由跳转的组件(antd-pro的提供的方案是
umi/redirect),也可以放一个提示的静态页面组件,根据不同的需要来编写。大致的实现思路是这样的,antd-pro中的鉴权使用的是localStorage的方案,也可以替换成请求接口的方案。