当用户发起/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令牌生成返回给前端

本文详细描述了用户登录请求时,后端服务进行的一系列验证步骤,包括账号密码检查、IP黑名单判断、用户状态核实、密码错误处理、token生成及JWT加密返回给前端的过程。

被折叠的 条评论
为什么被折叠?



