使用nestjs+mysql+typeorm+jwt+swagger企业项目中的RBAC权限管理
vue3
开发的。前端项目地址
angular
模块化开发方式来构建项目,如果你想用java
的mvc
方式来开发nestjs
项目你可以查看v1
分支。mysql
数据库,项目中全部采用typeorm
来操作数据库,弱化了原生sql
,避免前端的小伙伴没有sql
基础。token
的方式进行登录鉴权,采用自定义装饰器结合守卫来实现对接口鉴权拦截访问。winston
做日志管理,并且根据小时来拆分日志1、本项目仅仅是实现了rbac
的权限系统,对于其他的功能需要自己基于这个基础上去扩展
2、先在本地创建数据库
3、在项目的根目录的.env
文件修改为你自己的数据库基本配置(地址、用户名、密码、数据库)
DB_HOST=localhost
DB_USERNAME=root
DB_PASSWORD=123456
DB_DATABASE=nestjs-mysql
4、安装依赖包
5、启动项目
npm run start:dev
5、运行项目会自动初始化菜单数据和用户数据(账号:admin
,密码:123456)
6、如果你想初始化别的数据,可以在src/services/init-db
中写上你要初始化的数据
[x] 实现用户的登录、登录鉴权、多点登录限制、菜单权限、接口权限
[x] 基于RBAC
实现权限控制
[x] 集成swagger
文档
[x] ecosystem.config.js
是采用PM2
的配置文件,项目开发完后直接运行命令一键部署
npm run build
# 开发环境
npm run pm2:dev
# 生产环境
npm run pm2:prod
[x] winston
日志系统根据小时来划分日志管理,如果要实时查看日志,直接使用PM2
查看日志
pm2 log
[x] 自定义装饰器,被装饰器装饰的接口会自动进行入库操作
本项目还在持续集成新功能进来,最后会加上前端做一个
cms
系统的api
,后期会拉分支使用graphql
提供api
1、有关于nestjs
的技术问题或索要关于nestjs
的电子书可以直接加我微信加入技术交流群(微信号:332904234)备注:nest 开发
2、如果你觉得本项目对你帮助很大,给一个赞
Nestjs
微服务训练营,训练营后打算重构一版