介是官方文档中给出的描述
我们约定了 src/access.js
为我们的权限定义文件,该文件需要默认导出一个方法,导出的方法会在项目初始化时被执行。该方法需要返回一个对象,对象的每一个值就对应定义了一条权限。如下所示:
export default function access(initialState) {
const { jwt } = initialState || {};
const { groups = [] } = jwt; // 获取初始化数据的token解析来的用户信息组
return { // 返回的对象里面可以定义多个权限,也就是多个键值对
isAdmin: groups.includes('MAX-ADMIN'), // 若返回用户信息组里面包含MAX-ADMIN,则就是有权限查看
isOwner: groups.includes('OWNER')
};
}
其中 initialState
是通过初始化状态插件 @umijs/plugin-initial-state
提供的数据,你可以使用该数据来初始化你的用户权限。不清楚如何使用initialState的移步我的另一篇博客
定义好了权限之后,可以在路由文件中使用:
// config/route.ts
export const routes = [
{
path: '/pageA',
component: 'PageA',
access: 'isAdmin', // 权限定义返回值的某个 key
},
{
path: '/pageB',
component: 'PageB',
access: 'isOwner', // 权限定义返回值的某个 key
},
]
文档中还给出了其他用法,根据项目需求使用
就酱~
更多推荐
umi项目菜单权限管理(access)
发布评论