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表

具体实现:
- 参数检验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类型
