type
status
date
slug
summary
tags
category
icon
password

umimax+nest.js 实现 权限管理系统

前端

umi文档 ,在文档中你可以看到,有一个权限配置,它有一套自己的权限管理方案
定义权限
约定`src/access.ts`` 为权限定义文件,判断是否具有某个权限
notion image
路由权限
在你的路由配置中 增加一个字段access,则会判断路由是否有权限,例如
功能权限
使用useAccess获取权限,可以获取到你定义的所有权限

何时来获取用户权限信息

约定在src/app.tsx 下导出一个方法getInitialState,可以初始化信息.例如
上述代码,我在初始化时判断是否为登陆页,来获取存储的信息(权限) ,但是 这个信息初始化后 如果登陆信息发生改变,则需要重新让它获取最新的登陆信息,所以我们在登陆的时候,让它重新初始化
在登陆成功后,更新本地缓存并且重新初始化,即可获取用户最新的权限

后端

用户=>角色=>权限
用户、角色、权限三个表互相关联

数据库

user.entity.ts
role.entity.ts
permission.entity.ts
定义好三个表后就差不多好了
在查询用户信息时,我也需要查询到用户的角色和权限
更新用户 角色
权限和角色的查询和修改同用户表一致,如此一来权限控制就实现了

总结

这是我的后台管理系统(umimax+nest+mysql)的权限设计,以此学习后端和数据库知识,还有docker及自动化部署,感兴趣可以一起学习
 
玩转Nginx:轻松为Docker部署的服务添加域名的完美指南Docker部署前后端项目:经验分享与问题解决