权限管理是个很大很复杂的模块,目前,刚开始做,就化繁为简,简单的切分成前端控件控制,和后端API权限控制。好记性不如烂笔头,整理一遍思路,慢慢沉淀。
1. 前端控件权限控制
将用户跟Role挂钩,admin role, read-only role等等,前端一些增删改控件以及Admin页面是否加载的话,可以使用v-if=editAccess, 查询用户是否有权限的过程(发get请求到服务端去查)可以放在组件的created hook里面,有权限则this.editAccess=true,反之false.
2. 后端API权限控制
[ http request 拦截器 springboot 2.x及以后]
后端API控制稍微麻烦些,要联合登录以及session过期等一起来做。确保session没过期,session是合法的,然后才进入到具体的api。对于一些敏感api(例如增删改api,或者只能admin角色才能做的一些api),干实事儿之前先进行权限检查,没权限的直接response.sendError(...)
然后就return结束。
实际上我也考虑过,把增删改api的权限检查拿出来,做成一个或者多个拦截器。这么一来的话,要把api分类,同一个权限级别的api可以放到一个拦截器里去。Anyway,这是可行的。合适的话,以后往这个方向做。
-
在springboot的property文件里配置上sessio