一,关于授权token,暂时理解为一个确认双方的信物。
需求:授权登录
系统A上有生成token以及生产token的方式,系统B希望拿到这个token。
方案1:由系统A生成,然后通过前端去传给系统B后台,存在安全性问题。
方案2:由系统A和B协商制定某种加密算法,将某个数据(内部定),进行MD5加密,或者其它方式的加密,之后传给系统B,系统B在解密,一致的话,自己去生成token,然后执行查库操作等,免除了系统之间后台数据的交互。
目前第二种方案相对安全,在生产上也有实际投入使用的案例。具体细节待补充,可能存在描述错误。
涉及到的点:
登录:token的生成,有效期,是否存放服务器(本次是调用登录接口)
报文加密,验签:加密算法,加密算法的选择
目前的设计方案:
1,登录(get请求,走网关-dubbo-server层):
操作:1,验签(即判断对方的来源,MD5验签。) 2:判断链接是否超时(设定链接的有效期,即用时间戳差比较)
2,登录校验通过后,允许用户跳转到某个具体的页面(登录跳转接口在其它系统里。)
有两种方案 :1,验签后,调用登录跳转接口,返回前端数据。2,验签后,返回登录跳转需要的数据。被登录跳转接口调用。(目前采用2,验签后只提供必要的数据)
二,数据库表的设计问题
需求背景:每个用户通过数据权限划分之后,可以是A商户的管理员、B门店的店长、C门店下的员工。
设计表结构:待定
需求背景:可以为每个用户分配角色,且角色的权限可以不同
设计表结构:
1,权限表---存放各种权限数据
2,角色表--存放各种角色信息
需求背景:存储存储省市区等信息,显示在前端。
设计表结构:待定
需求背景:存储所属行业信息。行业-餐饮-火锅,快餐。数据库表关系可设置如下
三,查询请求的加解密问题
需求背景:系统A需要从系统B查询信息,但信息涉及到敏感数据,如何解决。
1,验签。规定双方:根据系统的来源获取盐值(即固定值)+其它参数,做MD5(各种参数),得到一个sign。
备注:盐值在双方系统各存一份,且保持一致。
这样就
2,