UserHub 项目笔记
需求分析
- 注册 / 登录
- 用户管理(管理员)
技术选型
前端
- HTML + CSS + JavaScript 前端三件套
- React 开发框架
- Ant Design Pro 项目模板
- 正向代理
后端
- Java
- Spring + SpringMVC + SpringBoot 开发框架
- MyBatis + MyBatis-Plus 持久层框架
- MySQL 数据库
- JUint 单元测试
部署
- Linux 单机部署
- Nginx
- Docker 容器
- 容器托管平台
项目初始化
前端初始化
- 引入 Ant Design Pro 框架
- 框架瘦身
后端初始化
- 环境搭建
- 整合框架
- demo 测试
数据库表设计
用户表:
列名 | 说明 | 类型 |
---|---|---|
id | 主键 | bigint |
user_name | 昵称 | varchar |
user_account | 账号 | varchar |
avatar_url | 头像 | varchar |
gender | 性别(0-男 1-女) | tinyint |
password | 密码 | varchar |
phone | 电话 | varchar |
邮箱 | varchar | |
user_status | 用户状态(0-正常) | tinyint |
create_time | 创建时间 | datetime |
update_time | 更新时间 | datetime |
is_delete | 是否删除(逻辑删除) | tinyint |
user_role | 角色权限 0-普通用户 1-管理员 | tinyint |
功能实现
后端
注册功能
逻辑(Service 层)
校验用户的账号和密码是否合法
密码加密
添加用户数据到数据库
登录功能
逻辑(Service 层)
校验用户的账号和密码是否合法
校验密码是否正确,与数据库中的密文密码对比
用户信息脱敏
记录用户的登录态(session),存储到服务器上(SpringBoot 封装的 Tomcat 服务器)
返回脱敏后的用户信息
登录接口(Controller 层)
- 接收参数:用户账号、密码
- 请求类型:POST
- 请求体:JSON 格式数据
- 返回值:用户信息(脱敏)
用户管理功能
!!!必须鉴权- 查询用户
- 允许根据用户名查询
- 删除用户
- 允许根据 id 删除用户
- 查询用户
用户注销功能
前端
登录页面开发
正向代理
application.yaml 指定接口:
1
2servlet:
context-path: /apiproxy.ts 指定代理(正向代理):
1
2
3
4
5
6dev: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true,
},
},
注册页面开发
获取用户登录态(获取当前用户的信息)
用户管理功能
用户注销功能
代码优化
后端
- 通用返回对象
目的:告诉前端在业务层面是成功还是失败- 自定义错误码
- 返回对象工具类
- 封装全局异常处理
- 定义业务异常类
- 编写全局异常处理器
前端
- 对接后端返回值,取 data
- 全局响应处理
项目部署
- 原始前后端部署
- 宝塔 Linux
- Docker 容器
- 容器平台
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ShameYang's Blog!