近日在网上找了个用户管理系统进行学习,目的是规范代码写法和学习思考需求与逻辑,更侧重于学习后端代码。
1,登录
需要对前端和后端的请求都要做效验。
Q:前端效验了还有必要进行后端效验吗?
A:有的,前端都是可以绕过的,所以在后端都要进行二次效验。
基础效验需求:登录用户名+密码
若数据库查出没有对应用户,提示其注册
注册:用户账号,密码,再次输入,验证码(暂时未实现)
账号长度限制,密码长度限制,特殊字符校验,关键字短是否为空
/**
* 一个个用if判断很麻烦,这里使用StringUtils封装好的方法来判断
* */
if (StringUtils.isAnyBlank(userAccount, userPassword, checkPassword, planetCode)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "参数为空");
}
if (userAccount.length() < 4) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "用户账号过短");
}
if (userPassword.length() < 8 || checkPassword.length() < 8) {
throw new BusinessException(ErrorCode.PARAMS_ERROR, "用户密码过短");
}
登录:确认账号密码就可以。
用户中心:增删改查功能,分页查询(使用mp)的分页查询还是比较简单。
一些常见的手法:
1.自定义一个全局异常处理器,向外抛出异常
2. 封装:使返回的数据的数据类型一致化
3.业务逻辑放在service层,业务逻辑判断放在service中实现
4. 存入数据库的密码要加密,可以采用salt+密码+md5(salt的作用是混淆密码)->不用解密,md5是非对称加密
5.返回的用户信息要脱敏->新建一个safeUser(仍然是user类),传入不敏感的信息后返回