1.登录认证

用了jwt技术(json web token),MD5算法加”盐”进行加密
实现思路

  • 全局过滤器:所有的微服务需要从网关进入,可将token的验证放入网关中处理,具体实现如下:
    • 过滤器中设计一个白名单,将登录请求放到白名单中直接放行
    • 其余请求,判断token是否存在,不存在返回错误提示信息
    • 再判断是否失效,失效的话拦截返回重新登录,未失效则解析其中的userid,设置到请求头中,放行到其他微服务中
  • 登录请求:
    • 首先参数校验账号密码不能为空
    • 根据传入的账号到数据库获取用户信息
    • 判断用户信息的状态码是否可用,0暂时不可用,1永久不可以,9正常可用
    • 同时获取数据库中的密码和”盐”,将传入密码和盐用加密算法加密,加密完成后与数据库中加密后的密码对比
    • 修改最近登录状态,颁发token
  • 浏览器会存储token信息,之后访问将携带token信息,通过过滤器得到token中的userId,设置到请求头中,方便后续访问微服务.

    2.app端实名认证授权

    用了Feign远程调用的技术
    实现思路

  • 首先app端的个人中心用户可以实名认证,将认证信息上传到ap_user_realname表中.

  • 然后平台管理端要获取app端用户的实名认证列表ap_user_realname,里面存放的是用户发起的实名认证信息.
  • 用户通过审核后需要给其开通自媒体账号,涉及到wm_user表
  • 同时用户通过审核后需要在article中在作者表中新建一个作者信息,涉及到qp_auther表

黑马头条Day02 - 图1
具体实现:

  • 参数检验id不能为空
  • 根据传过来的id去ap_user_realname表中查对应的信息,如果为null返回 错误实名认证信息不存在
  • 不为null判断状态信息是否为1(1为待审核状态)
  • 再根据实名认证的id去ap_user表中查询是否有对应的app用户,若没有返回错误信息,实名认证信息关联的app用户不存在
  • 最后根据传入的状态信息(2/9)更新用户时间(new Date)状态以及msg信息
  • 如果传入的状态为9
  • 通过认证,创建自媒体账户当前为user服务,需要使用feign远程调用自媒体服务
    • 自媒体服务下有根据用户名查询用户信息和保存用户两个接口
    • 先调查询用户的方法判断用户是否存在,不存在则可以添加
    • 一个细节,由于创建作者用户需要自媒体用户的ID,所以添加完成后需要将自媒体用户返回
  • 通过认证,创建对应的作者用户,流程和创建自媒体账户相似.

    3.项目中的小细节

    • Feign接口中的方法一定要记得写泛型,不然默认返回的是LinkedHashMap类型