项目介绍
企业核心的用户中心系统,基于 Spring Boot 后端 + React 前端的 全栈项目 ,实现了用户注册、登录、查询等基础功能。
项目收获
- 学会前后端企业主流开发技术的应用
- 了解做项目的完整流程,能够独立开发及上线项目
- 学到系统设计的方法和经验
- 学到一些实际的编码技巧,比如开发工具、快捷键、插件的使用
- 学到代码的优化技巧,比如抽象、封装、提高系统性能、节约资源的方法
- 学习登录态、代理、多环境、容器、跨域等重要的开发知识
- 学到一些源码阅读的技巧
- 提升自主解决问题的能力
技术选型
前端
主要运用阿里 Ant Design 生态:
- HTML + CSS + JavaScript 三件套
- React 开发框架
- Ant Design Pro 项目模板
- Ant Design 端组件库
- Umi 开发框架
- Umi Request 请求库
- 正向和反向代理
后端
- Java 编程语言
- Spring + SpringMVC + SpringBoot 框架
- MyBatis + MyBatis Plus 数据访问框架
- MySQL 数据库
- jUnit 单元测试库
部署
- Linux 单机部署
- Nginx Web 服务器
- Docker 容器
- 容器托管平台
本系统前后端和开发全过程均有鱼友进行详细整理,本文仅做一些个人的听课笔记
注册逻辑
1.用户在前端输入账户和密码、以及校验码
2.校验用户的账户、密码、校验密码,是否符合要求
a.非空
b.账户长度不小于4位
c.密码就不小于8位吧
d.账户不能重复
e.账户不包含特殊字符
f.密码和校验密码相同
1.对密码进行加密(密码千万不要直接以明文存储到数据库中)
2.向数据库插入用户数据
apache common utils库:我们可以利用StringUtils的方法,方便校验
登录接口
接受参数:用户账户、密码(请求参数很长时不建议用get)
请求类型:POST
请求体:JSON格式的数据
返回值:用户信息(脱敏)
登录逻辑
1.校验用户账户和密码是否合法(这都不对,就省去去数据库查询,节省资源)
a.非空
b.账户长度不小于4位
c.密码不小于8位
d.账户不包含特殊字符
校验密码是否输入正确,要和数据库中的密文密码去对比
用户信息脱敏,隐藏敏感信息,防止数据库中的字段泄露
我们要记录用户的登录态(session),将其存到服务器上(用后端SpringBoot框架封装的服务器tomcat去记录
cookie
返回脱敏后的用户信息
如何知道是哪个用户登录了?
(这方面的知识是在学习iavaweb会接触到)
1.连接服务器端后,得到一个session状态(名会话),返回给前端
2.登录成功后,得到了登录成功的session,并且给该session设置一些值(比如用户信息),返回给前端一个设置cookie的“命令”
session => cookie
3.前端接收到后端的命令后,设置cookie,保存到浏览器内
4.前端再次请求后端的时候(相同的域名),在请求头中带上cookie去请求
5.后端拿到前端传来的cookie,找到对应的session
6.后端从session中可以取出基于该session存储的变量(用户的登录信息、登录名)