java jwt 登录注册简单逻辑梳理

1.ApiSmsController.java发送短信,注释了调用阿里云的接口
2.JwtUtils.java一个生成Jwt的工具类
    a.生成key实例
    b.创建token
    c.判断token是否有效
    d.从token中获取用户id
    e.从token中获取用户userName
    f.从token中解码出claims body体数据
3.LogoVO.java一个登录的数据传输实体类,因为和数据库中的表无法对应字段,固创建此类
4.service-base pom.xml中引入 jjwt
5.RegisterVO.java一个注册的数据传输实体类,因为和数据库中的表无法对应字段,固创建此类
6.UserInfo.java中增加3个常量,标识用户锁定与否,用户头像
7.UserInfoController.java前台用户注册接口、前台用户登录接口
    7.1注册接口
    a.从用户的提交请求中获取post发送的数据mobile,code,password
    b.断言判断3者都不为空,为空返回异常
    c.断言判断手机号合法,不合法返回异常
    d.从redis中取得短信验证码和上面的code进行相等判断,如果不相等,返回异常
    e.调用 UserInfoService.java 的register方法进行数据入库
    f.返回注册成功的结果
    7.2登录接口
    a.从用户的提交请求中获取post发送的数据mobile,password
    b.断言判断2者都不为空,为空返回异常
    c.从request请求对象中获取客户端ip
    d.调用 UserInfoService.java 的login方法查询数据库记录,并记录日志
    e.返回查询结果和用户认证token
8.UserInfoService.java 定义抽象方法register、login
9.UserInfoServiceImpl.java 实现接口中的抽象方法
    9.1register(RegisterVO registerVo)
    a.判断用户是否注册:拿传入的registerVO对象,获取手机号,在userinfo表中查询是否存在记录,记录数为0,返回异常
    b.把registerVO对象一一映射到userInfo对象中,然后存入数据库表user_info中
    c.把user_info表中存入的ID存入 user_account 表中
    9.2login(LoginVO loginVO, String ip)
    a.从传入的loginVO对象中获取到 mobile、password、userType
    b.从user_info表中查询 mobile、userType 的记录
    c.如果记录为空,返回异常
    d.从查询的记录中解析出密码,和用户输入的密码进行比对,如果密码也相等进行下一步判断
    e.如果用户的状态是1,没有被锁定,进行下一步
    f.把传入的用户id 和IP 记录到 user_login_recore 表中
    g.用user_info表中的id、name生成一个token
    h.把查询到的用户信息和token一起返回给客户端
8.UserInfoVO.java一个用户信息的数据传输实体类,因为和数据库中的表无法对应字段,固创建此类

完整代码地址:

srb: 大型金融项目商容保

你可能感兴趣的:(spring,boot,java,开发语言)