用户中心_下
APi: 可以理解为 网络请求,提供给外边的一个借口
Map: 可以理解为,SDK可以引入直接用;
■前两期_已完成任务:
- 前后端项目初始化✔
- 组件✔
- 开发环境准备 ✔
- 数据库表设计(细节点) ✔
- 完成登录注册的前后端开发
- 后端✔
- 前端
■本期计划:
△后端:
- 完成后端登录功能(单机登录=>后续改造(分布式登录))✔
- 开发后端用户的管理接口(用户查询/状态更改)✔
- 后端接口测试✔
△前端:
- 开发前端用户登录注册功能
- 讨论如何校验用户()
■开发实现
1.后端_登录业务(接口):
接收参数: 用户账户、密码
请求类型: POST
请求体: JSON 格式的数据
请求参数很长时,不建议用get
返回值: 用户信息(脱敏)
1.1 业务逻辑层
- 检验用户密码是否合法
- 非空
- 账户长度不小于4位
- 密码就不小于8位
- 账户不包含特殊字符
- 校验密码是否输入正确,要和数据库中的密码是否匹配
- 用户信息(脱敏),隐藏敏感信息,防止数据库中的字段泄漏
- 记录用户的登录状态(session), 将其存到服务器上,(用后端Springboot框架封装的服务器tomcat去记录)cookie
- 返回
1.2 控制层
Controller封装请求
2. 后端_用户管理接口(接口)
- 查询用户
- 允许根据用户名查询
- 删除用户
3.前端_登录注册
- 实现跨域访问(代理)
dev: {
// localhost:8000/api/** -> https://preview.pro.ant.design/api/**
'/api/': {
// 要代理的地址
target: 'http://localhost:8080',
// 配置了这个可以从 http 代理到 https
// 依赖 origin 的功能可能需要这个,比如 cookie
changeOrigin: true,
pathRewrite: { '^/api' : '' },
},
拓展:
1.Session和Cookie_如何知道是哪个用户登录了
-
连接服务器后,得到一个session状态,返回给前端
-
登录成功后,得到登录成功的session,返回给前端一个设置cookie的命令
session => cookie
-
前端接收到一个命令后,设置cookie保存到浏览器内
-
前端再次请求后端的时候(相同的域名) ,在请求头中带上cookie去请求
-
后端拿到前端传来的cookie ,找到对应的session
-
后端从session中可以取出基于该session存储的变量,(用户的登录信息,登录名)
2.自动填充参数插件
Auto filling Java call arguments
3.写代码流程
先做设计
代码实现
持续优化!!(代码复用,提取公共逻辑/常量)
4. 前后端交互_request
前端需要向后端发送请求
前端ajax来请求后端
Axios封装了ajax
request是ant design 项目有封装了一次
5. 什么是代理?
正向代理: 替客户端向服务端发送请求
个人理解记忆: 单台服务器
1->1->1
反向代理: 替服务器接收请求
个人理解记忆: 多台服务器
1 <--> 1 <--> 服1/2/3