文档目录
glen
· 预计阅读 1 分钟

三套权限各自判断什么

本文导航
三套权限各自判断什么

三套权限各自判断什么

套 数据从哪来 用来做什么 代码
菜单 GET /users/me/menus 侧栏有没有这项 动态路由本身
路由 meta 路由上的 roles、auths 前端静态的页面角色、按钮编码 hasAuth、v-auth、Auth
后端权限标识 GET /users/me/permissions 按钮能不能看见,和接口权限标识对齐 hasPerms、Perms、v-perms

这三套不互相代替。

菜单没有这项,用户进不了页面。菜单有这项,只说明后端把页面菜单分给了角色,不表示每个按钮都分了。

meta.auths 是前端自己写在路由上的编码,例如 btn.add。后端菜单数据里通常没有这个字段。用 v-auth="'btn.add'" 时,如果当前路由 meta.auths 是空的,hasAuth 直接返回 false,按钮会被拿掉。

permissions 才是后端的 admin:user:Create 这种标识。对接 owl-admin 时,按钮用这一套。

import { hasPerms, hasAuth } from "@bit-labs.cn/owl-ui";

hasPerms("admin:user:Create");
hasAuth("btn.add");

数组都是「全部满足」:hasPerms(["a", "b"]) 要求两个都有。只想满足一个,自己用 ||。

超管的 permissions 是 ["*:*:*"],hasPerms 直接通过。hasAuth 不看这个通配,它只看当前路由的 meta.auths。

评论

加载评论中…

上一篇 登录态存在哪里 下一篇 页面上怎么隐藏按钮

BitLabs © 2026 · 论坛讨论 · 博客长文 · 文档手册