登录注册模块
- 1.获取用户的手机号,发送短信,进行短信验证登录
- 2.登录成功后判断是否为新用户
- 3.如果是新用户需要完善个人资料,上传头像信息
- 4.如果是老用户,进入首页
获取验证码
- 1.获取用户的手机号
- 2.拿着用户的用户的手机号拼接好的redisKey去redis中查找验证码是否过期,如果没有过期直接返回
- 3.如果验证码为空的话,调用阿里云的Sms短信平台进行短信验证码的获取
- 4.这里需要进行判断阿里云的Sms是否成功发送短信,判断获取到的验证码是否为空,为空记录日志报异常,不为空的话,将其存入到redis中,并设置其过期时间即可。保存的时候需要保存包含手机号的redisKey,验证码和过期时间
controller
1 | /** |
service
1 | /** |
进行用户的登录
- 1.用户获取到验证码之后,需要进行验证码的登录验证,此时需要获取到用户的手机号和验证码
- 2.在获取到用户的手机号和验证码之后,需要在redis中取查找是否存在验证码,进行验证码的判断
- 3.根据用户的手机号去redis中查找该手机号对应的验证码进行判断,如果用户输入的验证码与redis中存放的验证码不一致,验证码错误
- 4.如果验证码判断通过,需要在redis中清除此验证码。接下来判断此用户是否是新用户
- 5.通过用户的手机号去数据库中查找是否存在用户,如果为空则为新用户,新用户需要进行资料的完善;不为空则为老用户
- 6.如果为新用户的话,设置其信息保存至数据库中,并标记为新用户,进行后续资料完善的判断依据
- 7.在通过验证码的校验,Jwt会生成一个此次登录的token,进行单点登录的认证
- 8.登录成功后,通过rocketMQ发送消息,将用户登录成功的消息发送给其他系统
controller
1 | /** |
Service
1 | /** |
完善新用户的个人信息
- 1.首先获取到用户的信息和该次请求携带的token,进行token的校验
- 2.token的校验,需要通过token解析器进行解析,成功解析返回一个map集合,获取map集合的key封装到用户对象中,通过获取到该用户的id在redis中查找是否存在此手机号,存在的话直接返回该用户对象,不存在的话去数据库中查询,查询到的话获取其手机号,并将其写入到redis中,并且需要设置其过期时间,过期时间需要和token保持一致,如果数据库中也不存在的话也就是token解析失败,token不合法或者已经过期,返回null.
- 3.如果用户对象不为空的话,token校验通过,设置该用户的个人资料进行数据库的保存操作
controller
1 | /** |
service
1 | /** |
校验token
1 | /** |
图片上传(用户的头像)
- 1.获取用户的头像MultipartFile file 和 token
- 2.进行token的校验
- 3.校验token通过后,需要检验图片是否为人像,如果不是人像则返回false
- 4.检验图片是否为人像,需要调用虹软开发平台的图片人像检验功能,第三方工具
- 5.如果是人像的话,将头像上传到阿里云oss进行图片的存储
- 6.上传成功后需要将头像的链接更新到数据库中的用户表中进行存储
controller
1 | /** |
service
1 | /** |
检验头像是否为人像
1 | package com.yishan.service; |
上传图片到阿里云oss
1 | package com.yishan.service; |