当用户发起/login登录请求时,后端服务接收到请求
一,首先对用户名密码进行一些基础的校验
1.判断账号密码是否为空StringUtils.isAnyBlank(username, password)
(1)如果为空,使用openfein远程调用,数据库记录用户登陆数据
2.判断账号密码是否在取值范围内
(1)如果不在,使用openfein远程调用,数据库记录用户登陆数据
3.判断IP是否是黑名单(从redis或者mysql里获取)if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
(1)如果用户登陆ip在黑名单中,就重复上面记录到登陆日志中
4.查询用户信息,
(1)查询之后,判断用户是否存在,不存在就添加到登陆日志表中
(2)判断一些当前用户的状态,是否被删除被禁用
5.查看passwordService.validate(user, password);
(1)登陆次数是否超过最大次数
(2)判断密码如果错误,将redis的用户登录次数加一
(3)使用加密工具包 判断密码正确是,将redis纪录登录次数删除
6.登陆成功也需要记录登录数据库中
7.token的一些操作
(1)根据uuid生成用户的token
(2)将token加密生成jwt令牌
8.最后将jwt令牌生成返回给前端