【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
有一天忽然想到一个问题,web端的权限控制:
1.真的能控制权限吗?
3.如不雅须要后台合营,应当若何合营?
可能这是一个老生常谈的问题,但照样想整顿下,有误的处所望大年夜家指出。
浏览器http header
权限控制大年夜致分为两个维度:
- 垂直维度: 控制用户可以拜访哪些url的权限
- 程度维度: 控制用户拜访特定url,获取哪些数据的权限(e.g. 通俗用户、治理员、超等治理员拜访同一url,获取的数据是不合的)
Web权限控制筹划List
- 前后端不分别:以Java为例,后端经由过程jsp、freemark、thmeleaf等模板来衬着响应权限的数据,衬着完涌如今浏览器端
- 前后端分别:
- SPA单页面应用,路由由前端控制,前端经由过程js控制hash路由的权限
- SSR办事端衬着,Node中心层做代劳路由,断定权限衬着特定的路由至浏览器端
SPA前端权限控制筹划
SPA: 单页Web应用(single page web application)将所有web晃荡局限于一个html页面中,应用js经由过程hash或者浏览器history api来实现无刷新路由跳转,前后端经由过程ajax数据通信,避免了浏览器的刷新从新加载,为用户供给流程的操作体验。这意味着前端接收了路由层,须要经由过程调用前端自身的MVC模块,来衬着不合的页面。
Base>
- // mutations
- const mutations = {
- [types.LOGIN_SUCCESS] (state, data) {
- state.authlock = false
- // 2.上岸成功回调拿到token,经Base64 编码后存入本地sessionStorage
- let token = Base64.encode(data + ':HIKDATAE')
- sessionStorage.setItem('userToken', token)
- // 路由跳转至目标页面
- router.push({name: 'xxx'})
- },
- [types.LOGOUT_SUCCESS] (state) {
- state.authlock = true
- // 登出成功回调,移除本地token
- sessionStorage.removeItem('userToken')
- router.push({name: 'Login'})
- }
- }
3.所有HTTP Header Authorization 加上编码后的token(前后端可商定规矩)
2.仅仅靠前端,能不克不及做到真正的权限控制?
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 有同伙留言欲望我们能发一期关>>>详细阅读
本文标题:前端真的能做到彻底权限控制吗?
地址:http://www.17bianji.com/lsqh/40263.html
1/2 1