权限设计,可控制每个接口的使用。 | 您所在的位置:网站首页 › 接口中的访问权限都是 › 权限设计,可控制每个接口的使用。 |
权限功能设计说明
1 功能介绍
1.1 已实现功能
用户管理 Ø 新增用户信息 Ø 删除用户信息 Ø 修改用户信息 Ø 查看用户信息 Ø 分配角色 角色管理 Ø 新增用户角色 Ø 删除用户角色 Ø 修改用户角色 Ø 查询用户角色 Ø 分配用户 权限验证 验证匿名用户权限:匿名用户只能访问登录、获取验证码、判断是否登录等无需授权功能。 验证授权用户权限:只允许访问公共接口(获取下拉数据、获取地址信息等接口)和已授权接口。 1.2 用户管理模块 见表结构介绍。 1.3 角色管理模块见表接口介绍。 1.4 验证功能验证模块未登录验证 客户端访问接口:访问服务器某个接口并至少传一个参数(这里用的是页面唯一编码)。 服务端验证权限:判断当前接口是否允许匿名用户访问。是:允许访问;否:不允许访问。 已登录验证 客户端访问接口:访问服务器某个接口并至少传一个参数(这里用的是页面唯一编码)。 服务端验证权限:判断当前接口是否允属于公共接口,是:允许访问;否:判断当前用户是否拥有该权限,是:允许访问;否:不允许访问。
权限验证流程图 1.5 表结构Menu(菜单表) 用于存放菜单信息,包括菜单名称、图标、样式、菜单对应的URL等,多级菜单需要存菜单级别、父级ID。 MenuFunction(菜单功能表) 用于存放菜单所对应的接口编码、接口所属菜单(如果一个接口存在多个菜单下,同时需要存多条数据)、接口所属页面(只所以要存页面是为了控制页面上按钮的权限,方便前端做权限验证)、接口所属操作ID(页面按钮ID)。 Role(角色表) 用于处方用户和角色关系,目前用户和角色做的是一对一关系。 RoleFunction(角色功能表) 用于存放角色和功能接口对应关系,此表为业务核心表。用于验证用户是否有访问权限。 表结构详情: Menu(菜单表) 名称 代码 主键ID ID 菜单URL MenuUrl 菜单名称 PageName 状态(1:启用,0禁用) Status 菜单级别 Level 父级ID ParentID NO NO 创建时间 CreateTime 修改时间 ModifyTime 排序 Sort icon icon
MenuFunction(菜单功能表) 名称 代码 主键ID ID 功能编码(功能分类) FuncCategory 功能名称 Name 菜单ID MenuID 页面编码 PageCode 操作id(页面按钮ID) OperateID 接口id Interface 类型(1:默认接口,2:对外接口,3:通用接口) Type NO NO 创建时间 CreateTime 修改时间 ModifyTime 排序 Sort 状态(1:启用,2:禁用) 接口访问级别0匿名1登录即可访问2授权才能访问 Status AccessLevel
Role(角色表) 名称 代码 ID ID 角色名称 RoleName 自动排序 NO 状态 Status 创建时间 CreateTime 修改时间 ModifyTime 用户微信昵称 CreateID ModifyID ModifyID
RoleFunction(角色功能表) 名称 代码 主键ID ID 自增量 NO 角色ID RoleID 菜单id MenuID 功能id FuncID 功能分类 FuncCategory 按钮标识 OperateID 接口id Interface 页面编码 PageCode 状态(1.启用,2.禁用) Status 类型(1.菜单,2.功能,3.第三方接口) Type 创建时间 CreateTime 修改时间 ModifyTime 排序 Sort 接口访问级别0匿名1登录即可访问2授权才能访问 AccessLevel
1.6 代码 前端 1. 封装get、post、getAsnyc和postAsync方法,传入pageCode参数。
2. 页面添加pageCode全局变量
3. 菜单根据用户权限自动加载 4. 页面按钮权限控制(在页面控制按钮权限,减少接口调用的压力) 后端 Ø 权限验证公共类: 1. 验证当前接口是否属于看匿名访问接口 2. 验证当前接口是否已授权 Ø 调用权限验证: 1. Base类添加权限验证方法,此处分三部分验证1、验证当前调用的接口是否属于可匿接口;2验证当前用户是否登录超时;3、验证当前接口是否允许调用。
2. 集成Base类,执行功能前调用Base类中权限验证方法。
|
CopyRight 2018-2019 实验室设备网 版权所有 |