一、总结
1、登录功能
实现两次MD5加密。
- 用户端:Pass = MD5(明文+固定salt)
- 服务端:Pass = MD5(用户输入+随机salt)
用户端MD5加密是为了防止用户密码在网络中明文传输,服务端MD5加密是为了提高密码安全性,双重保险。
使用了最简单的从controller 到 service 到数据库的框架。
2、参数校验
发现参数校验比较麻烦。所以引进了validation组件。自定义了手机号码的验证规则。
校验后可以抛异常,但是无法在前端页面进行异常状态显示,只是在后端控制台展示。
3、异常处理
为了在前端页面进行显示,添加了全局异常处理类。
- 使用
@ControllerAdvice
和@ExceptionHandler
注解(使用) - 使用
ErrorController
类来实现
4、分布式Session
如果只是单应用,就没有问题。但后来肯定要做成分布式的,就会遇到分布式session的问题。
解决分布式session的问题有两种解决方法:spring session、redis存储用户信息。
5、优化
最后每一个接口都需要做用户校验,比较麻烦。
于是加上自定义的参数校验,来定义用户参数,通过这个参数之后,在controller入参之前就做好了参数校验,判断cookie是否为空,非空的话就获取用户信息,最后传到对应的controller里面去。