字段数据如何根据权限控制返回是否可见

img

作为平台,这种数据权限如果根据第三方的appid控制到每个字段的是否返回显示 是怎么实现的

您好,比较简单的做法可以做个映射。
第一种做法是将不同权限能返回的字段做个key-value的映射,业务方在请求接口的时候,根据申请的权限做限制,这种做法需要依赖硬编码,想动态调节也麻烦需要修改代码,如果字段信息固定下来后期不会被修改,其实也可以满足。
第二种如果想做的灵活的话,可以设计一张配置表,将权限和字段信息配置到数据库或者缓存中,请求时从数据库或者缓存中获取,这样比较灵活容易扩展。

思路如下:
①数据库中的涉及权限的数据表进行数据字典化,主表TableDic(主要描述表名,含义等),子表columnDic(主要描述主表外键,字段名,字段含义,字段权限Code等)。
②数据库建立数据权限表,和角色表形成一对多的关系。
③调用API时,根据调用者的角色中授权字段信息,进行select 语句后台动态拼接授权的字段集,形成select完整语句,查询数据库后反馈授权数据集。