Skip to content

Instantly share code, notes, and snippets.

@XiongJingzhi
Created December 8, 2018 19:44
Show Gist options
  • Save XiongJingzhi/c3f8d67d99b3fce9eaa79ee207d375f4 to your computer and use it in GitHub Desktop.
Save XiongJingzhi/c3f8d67d99b3fce9eaa79ee207d375f4 to your computer and use it in GitHub Desktop.
做了 n 个 spa,给你一点意见:
1,登陆权限,一般来说这个是独立出来,不用 spa 做,就一个表单的事情,后面也容易做扩展,包括单点登录什么的;
2,登陆集成到 spa 里面,这个一般在请求加拦截,vuex 可以存 token,每次请求头带 token,后端校验 token 是否有效,如果修改了或者过期了,返回约定的字段标识,异步请求 axios 在返回 response 的时候优先拦截 token 校验,如果失效直接 vue-router 路由到登录页;
3,内部权限,子页面什么的,前端一般是打包好了文件,页面是全部的,但是有的页面需要权限控制是否能访问,这时候只能做 2 次校验,后端返回当前权限能访问的路由 or 页面,存 vuex,前端路由加 watch,每次切换跳转都要遍历一次;
4,接口权限,有的接口是不能提供给无权限的人使用的,比如抓包出来的;这时候后端做鉴权,返回约定的字段就行
后台管理系统
1. 维护页面菜单信息,名称,上下级关系,路由等;
2. 维护 API 信息,API 的名称,路由;
3. 维护菜单和 API 的对应关系;
4. 维护角色信息,包括角色有哪些菜单权限;
-----------------
正常流:用户登陆后,根据角色返回菜单信息,并构造页面。
异常流:用户自己输入菜单 URL,但是 API 调用时,后台会进行 角色校验如果没有对应 API 权限,会返回异常。
-----------------
关于菜单和 API 对应关系,建议前后端一起约定,根据相同的前缀可以模糊匹配,大大降低工作量。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment