权限管理与验证
系统验证权限是基于SaToken,Sa-Token是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。
系统admin端以及site端验证权限流程
系统平台管理以及站点管理端的接口统一是 域名/adminapi,系统会根据当前接口是/adminapi来进行检测,所以后台接口统一增加adminapi。
- 通过网址检测接口是后台还是前台,后台网址域名加adminapi
- 验证接口是否需要登录,这里使用注解@SaCheckLogin
- 如果需要登录,验证站点管理权限,说明:平台端站点ID为0
- 如果有站点访问权限,验证具体功能接口权限,首先验证是否是管理员,如果是站点管理员,直接权限通过
- 如果不是站点管理员,检测用户是够具有功能接口权限,这里根据用户所在用户组权限验证
系统站点前端接口权限验证
系统站点前端的接口统一是 域名/api,系统会根据当前接口是/api来进行检测,所以后台接口统一增加api。
- 通过网址检测接口是后台还是前台,前台接口网址域名加api
- 验证接口是否需要登录,这里使用注解@SaCheckLogin
- 验证站点是否开启
- 验证站点渠道是否开启
- 验证会员是否是站点会员
系统功能代码以及注解说明
后台adminapi权限验证流程代码
前台api权限验证流程代码
登录验证注解,如果当前控制器需要登录验证使用注解@SaCheckLogin,如下图所示
如果针对具体接口增加权限验证,是通过设置用户组,用户关联用户组来确定