mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-10-21 19:17:25 +08:00
新增:权限认证文档新增[如何把权限精确搭到按钮级]示例说明
This commit is contained in:
@@ -112,4 +112,24 @@ StpUtil.checkRoleOr("user:update", "user:delete");
|
||||
|
||||
### 拦截全局异常
|
||||
有同学要问,鉴权失败,抛出异常,然后呢?要把异常显示给用户看吗?**当然不可以!** <br>
|
||||
你可以创建一个全局异常拦截器,统一返回给前端的格式,参考:[码云:GlobalException.java](https://gitee.com/sz6/sa-token/blob/master/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java)
|
||||
你可以创建一个全局异常拦截器,统一返回给前端的格式,参考:[码云:GlobalException.java](https://gitee.com/sz6/sa-token/blob/master/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java)
|
||||
|
||||
|
||||
### 如何把权限精确搭到按钮级?
|
||||
权限精确到按钮级的意思就是指:**权限范围可以控制到页面上的每一个按钮是否显示**
|
||||
|
||||
思路:如此精确的范围控制只依赖后端已经难以完成,此时需要前端进行一定的逻辑判断
|
||||
|
||||
1. 在登录时,把当前账号拥有的所有权限码一次性返回给前端
|
||||
2. 前端将权限码集合保存在`localStorage`或其它全局状态管理对象中
|
||||
3. 在需要权限控制的按钮上,使用js进行逻辑判断,例如在`vue`框架中我们可以使用如下写法:
|
||||
``` js
|
||||
<button v-if="arr.indexOf('user:delete') > -1">删除按钮</button>
|
||||
```
|
||||
其中:`arr`是当前用户拥有的权限码数组,`user:delete`是显示按钮需要拥有的权限码,`删除按钮`是用户拥有权限码才可以看到的内容
|
||||
|
||||
|
||||
注意:以上写法只为提供一个参考示例,不同框架有不同写法,开发者可根据项目技术栈灵活封装进行调用
|
||||
|
||||
### 前端有了鉴权后端还需要鉴权吗?
|
||||
**需要!前端的鉴权只是一个辅助功能,对于专业人员这些限制都是可以轻松绕过的,为保证服务器安全,无论前端是否进行了权限校验,后端接口都需要对会话请求再次进行权限校验!**
|
||||
|
Reference in New Issue
Block a user