type
status
date
slug
summary
tags
category
icon
password
umimax+nest.js 实现 权限管理系统
前端
umi文档 ,在文档中你可以看到,有一个权限配置,它有一套自己的权限管理方案
定义权限
约定`src/access.ts`` 为权限定义文件,判断是否具有某个权限
![notion image](https://cdn.liboqiao.top/markdown/image-20240325095054783.png)
路由权限
在你的路由配置中 增加一个字段
access
,则会判断路由是否有权限,例如功能权限
使用
useAccess
获取权限,可以获取到你定义的所有权限何时来获取用户权限信息
约定在
src/app.tsx
下导出一个方法getInitialState
,可以初始化信息.例如上述代码,我在初始化时判断是否为登陆页,来获取存储的信息(权限) ,但是 这个信息初始化后 如果登陆信息发生改变,则需要重新让它获取最新的登陆信息,所以我们在登陆的时候,让它重新初始化
在登陆成功后,更新本地缓存并且重新初始化,即可获取用户最新的权限
后端
用户=>角色=>权限
用户、角色、权限三个表互相关联
数据库
user.entity.ts
role.entity.ts
permission.entity.ts
定义好三个表后就差不多好了
在查询用户信息时,我也需要查询到用户的角色和权限
更新用户 角色
权限和角色的查询和修改同用户表一致,如此一来权限控制就实现了
总结
这是我的后台管理系统(umimax+nest+mysql)的权限设计,以此学习后端和数据库知识,还有docker及自动化部署,感兴趣可以一起学习
- 作者:皮卡秋
- 链接:https://pikachu1024.com/article/uni-nest-admin
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章