阅读时间:1 分钟
0 字
权限管理与路由守卫
这一页主要讲:后台项目里,怎么控制“谁能看什么、谁能进什么页面”。
当你的项目开始有不同角色时,这一页就很重要了。
权限通常管哪几件事
最常见的是:
- 某个用户能不能进某个页面
- 某个菜单该不该显示
- 某个按钮该不该可用
最核心的判断位置
最核心的判断通常在 authProvider.can。
ts
const authProvider = {
// ...
can: (name, _params, _manage, auth) => {
if (!auth?.permission)
return true
if (Array.isArray(auth.permission))
return auth.permission.includes(name)
if (typeof auth.permission === 'object')
return auth.permission[name] !== false
return true
},
}你可以先把它理解成:
- 传进来一个权限名
- 返回这个用户能不能访问
路由守卫通常和什么配合
通常会和路由元信息一起配合使用,比如:
- 哪些页面必须登录
- 哪些页面登录前也能访问
- 某些页面是否还要额外权限判断
最常见问题
用户已经登录,但还是进不去页面
先检查:
authProvider.can是否返回了false- 当前权限数据是否正确
- 页面是否额外要求某些权限点
菜单和页面权限不一致
先检查:
- 菜单显示逻辑和页面访问逻辑是否用的是同一套权限规则
下一步建议
权限做完后,通常就可以继续补更具体的业务能力了,比如: