公司前后端已经分离开,过程中涉及权限控制的部分,实现过程如下:
权限类型
- 页面权限
- 按钮权限(功能权限)
登录信息验证
总则:前端通过API接口向服务端请求的时候会携带token信息,服务端判断登录状态、用户权限等问题。
页面权限:
页面级别的权限由前后端一起控制
服务端:根据用户信息筛选有权限的网站,返回给前端相应的用户信息
前端:基础路由只写登录页、错误页等不需要权限控制的页面,异步动态添加前端路由,根据服务端返回的用户路由(页面)数据、构造前端理想的路由数据。
按钮权限:
由服务端将用户拥有的按钮权限数据返回,前端通过自定义指令判断用户是否有特定按钮权限。
整体实现逻辑
- 添加路由进入前的钩子
- 获取储存在cookie中的
token
信息- 如果没有
token
则指向到登录页 - 有token信息
- 判断目标页面是在不需要验权的页面中
- 在则继续访问,
- 不在尝试请求用户信息,构造路由信息,动态加载路由信息,访问目标页面。
- 判断目标页面是在不需要验权的页面中
- 如果没有