一:前端
表单里有mobile和password,注意password需要一个公用的盐值加密传输,通过ajax发送到服务器
二:LoginController
注入UserService, 调用userService.login(response, loginVo);
return Result.success(true);
因为login里的验证失败会直接抛出异常
三:UserService
判断LoginVO是否为空,空抛出异常GlobalException(CodeMsg.SERVER_ERROR), 注意通用全局异常继承RuntimeException;
判断手机号是否存在,不存在抛出GlobalException(CodeMsg.MOBILE_NOT_EXIST)
验证密码,需先拿到数据库里的salt
生成cookie
****** 分布式session ******
生成一个token,将登录成功的用户信息写入到redis,并同时写入到cookie,返回给客户端,注意cookie的过期时间需要和写入到redis的缓存一致。
四:通用全局异常处理器
拿到GlobalException里的codeMsg, 封装Result.error(codeMsg)并返回;
网友评论