
├── 01.从零开始
│ ├── 从零开始 01:视频课程导读:项目简介、功能列表、技术选型
│ ├── 从零开始 02:在 Windows 环境下,如何运行前后端项目?
│ ├── 从零开始 03:在 MacOS 环境下,如何运行前后端项目?
│ ├── 从零开始 04:自顶向下,讲解项目的整体结构(上)
│ ├── 从零开始 04:自顶向下,讲解项目的整体结构(下)
│ ├── 从零开始 05:如何 5 分钟,开发一个新功能?
│ ├── 从零开始 06:如何 5 分钟,创建一个新模块?
│ ├── 从零开始 07:如何有效的删除不用的功能?
│ └── 从零开始 08:如何实现一键改包?
├── 02.用户认证
│ ├── 用户认证 01:如何实现管理后台和微信小程序的用户?
│ ├── 用户认证 02:如何实现用户的创建?
│ ├── 用户认证 03:如何实现用户的账号密码登录?
│ ├── 用户认证 04:如何实现用户的手机验证码登录?
│ ├── 用户认证 05:如何实现用户的退出?
│ ├── 用户认证 06:如何生成用户认证 Token 令牌?
│ ├── 用户认证 07:如何校验用户认证 Token 令牌?
│ ├── 用户认证 08:如何刷新用户认证 Token 令牌?
│ ├── 用户认证 09:如何模拟用户认证 Token 令牌?
│ ├── 用户认证 10:如何实现 URL 是否需要登录?
│ ├── 用户认证 11:如何实现微信、钉钉等第三方登录?
│ └── 用户认证 12:如何实现微信小程序的一键登录?
├── 03.功能权限
│ ├── 功能权限 01:如何设计一套权限系统?
│ ├── 功能权限 02:如何实现菜单的创建?
│ ├── 功能权限 03:如何实现角色的创建?
│ ├── 功能权限 04:如何给用户分配权限 —— 将菜单赋予角色?
│ ├── 功能权限 05:如何给用户分配权限 —— 将角色赋予用户?
│ ├── 功能权限 06:后端如何实现 URL 权限的校验?
│ ├── 功能权限 07:前端如何实现菜单的动态加载?
│ └── 功能权限 08:前端如何实现按钮的权限校验?
├── 04.数据权限
│ ├── 数据权限 01:如何实现数据权限(内核)—— 原理剖析?
│ ├── 数据权限 02:如何实现数据权限(内核)—— 源码实现:MyBatis 如何重写 SQL?
│ ├── 数据权限 03:如何实现数据权限(内核)—— 源码实现:如何基于(数据规则)生成 WHERE 条件?
│ ├── 数据权限 04:如何实现【部门级别】的数据权限 —— 入门使用?
│ ├── 数据权限 05:如何实现【部门级别】的数据权限 —— 源码实现?
│ └── 数据权限 06:如何实现【自定义】的数据权限 —— 案例实战?
├── 05.OAuth2.0模块
│ ├── OAuth2.0 授权 01:快速入门 OAuth 2.0 授权?
│ ├── OAuth2.0 授权 02:基于授权码模式,如何实现 SSO 单点登录?
│ ├── OAuth2.0 授权 03:请求时,如何校验 accessToken 访问令牌?
│ ├── OAuth2.0 授权 04:访问令牌过期时,如何刷新 Token 令牌?
│ ├── OAuth2.0 授权 05:登录成功后,如何获得用户信息?
│ ├── OAuth2.0 授权 06:退出时,如何删除 Token 令牌?
│ ├── OAuth2.0 授权 07:基于密码模式,如何实现 SSO 单点登录?
│ ├── OAuth2.0 授权 08:如何实现客户端的管理?
│ ├── OAuth2.0 授权 09:单点登录界面,如何进行初始化?
│ ├── OAuth2.0 授权 10:单点登录界面,如何进行【手动】授权?
│ ├── OAuth2.0 授权 11:单点登录界面,如何进行【自动】授权?
│ ├── OAuth2.0 授权 12:基于【授权码】模式,如何获得 Token 令牌?
│ ├── OAuth2.0 授权 13:基于【密码】模式,如何获得 Token 令牌?
│ └── OAuth2.0 授权 14:如何校验、刷新、删除访问令牌?
├── 06.工作流
│ ├── 工作流 01:如何集成 Flowable 框架?
│ ├── 工作流 02:如何实现动态的流程表单?
│ ├── 工作流 03:如何实现流程表单的保存?
│ ├── 工作流 04:如何实现流程表单的展示?
│ ├── 工作流 05:如何实现流程模型的新建?
│ ├── 工作流 06:如何实现流程模型的流程图的设计?
│ ├── 工作流 07:如何实现流程模型的流程图的预览?
│ ├── 工作流 08:如何实现流程模型的分配规则?
│ ├── 工作流 09:如何实现流程模型的发布?
│ ├── 工作流 10:如何实现流程定义的查询?
│ ├── 工作流 11:如何实现流程的发起?
│ ├── 工作流 12:如何实现我的流程列表?
│ ├── 工作流 13:如何实现流程的取消?
│ ├── 工作流 14:如何实现流程的任务分配?
│ ├── 工作流 15:如何实现会签、或签任务?
│ ├── 工作流 16:如何实现我的待办任务列表?
│ ├── 工作流 17:如何实现我的已办任务列表?
│ ├── 工作流 18:如何实现任务的审批通过?
│ ├── 工作流 19:如何实现任务的审批不通过?
│ ├── 工作流 20:如何实现流程的审批记录?
│ ├── 工作流 21:如何实现流程的流程图的高亮?
│ ├── 工作流 22:如何实现工作流的短信通知?
│ ├── 工作流 23:如何实现 OA 请假的发起?
│ └── 工作流 24:如何实现 OA 请假的审批?
├── 07.SaaS多租户
│ ├── SaaS 多租户 01:如何实现多租户的 DB 封装?
│ ├── SaaS 多租户 02:如何实现多租户的 Redis 封装?
│ ├── SaaS 多租户 03:如何实现多租户的 Web 与 Security 封装?
│ ├── SaaS 多租户 04:如何实现多租户的 Job 封装?
│ ├── SaaS 多租户 05:如何实现多租户的 MQ 与 Async 封装?
│ ├── SaaS 多租户 06:如何实现多租户的 AOP 与 Util 封装?
│ ├── SaaS 多租户 07:如何实现多租户的管理?
│ └── SaaS 多租户 08:如何实现多租户的套餐?
└── 08.Web组件
├── Web 组件 01:如何实现统一 API 前缀?
├── Web 组件 02:如何实现统一 API 响应?
├── Web 组件 03:如何实现 API 全局异常处理?
├── Web 组件 04:如何实现全局错误码?
├── Web 组件 05:如何实现 API 接口文档?
├── Web 组件 06:如何记录 API 访问日志?
└── Web 组件 07:如何校验 API 请求参数?