权限是一个系统必不可少的功能,才学疏浅,简单分享一下前后台的系统权限方案:
(本文章只是一个具体的设计思路)
前端设计:
语言:vue
对于页面的展示,有过了解的同学就知道是靠路由实现不同组件的切换和展示,那么如何实现通过权限来控制他相应的展示呢?首先,我们要将需要权限的和不需要权限的部分路由路径分成两个模块,不需要权限的模块可以在一开始就开始加载展示,我们称它为基础模块,其他需要权限的模块就不要一开始就加载了,而是异步根据权限来进行加载。权限的话可以通过在每次路由前在路由守卫上进行请求,得到权限表,交由vuex管理,根据权限表来异步加载权限允许的路由。
推荐看vue-element-admin中权限模块的设计,很规范,强烈安利!很适合新手!
(新手小白,大佬轻喷)
后端设计:
springboot+security+redis
后端的话数据库模型采用经典的RBAC权限模型来进行数据库的设计(不懂的小伙伴可以去百度百度),用户初次登录时,通过security来进行账号密码的验证,权限的校验,登录完成时将用户信息存入redis,以便下次查找,减少数据库的压力,并通过jwt封装一个带有用户信息的token返回给前端,前端可以将token保存到本地存储中,之后每次请求在请求头中携带token,当然后端这边要有一个过滤器,来对请求中是否有token进行过滤,有token就解析token拿到信息,到redis中查找是否有用户信息,有就将其继续封装到security中,减少其继续认证。没有的话老样子走security过滤链。