權限控制大致分為兩個維度:
- 垂直維度: 控制用戶可以訪問哪些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模塊,來渲染不同的頁面。
1.登陸事件Login
// 觸發登陸事件
dispatch('login')
// actions
commit(types.LOGIN_SUCCESS, res.data.data)
2、獲取Token,經Base64編碼後存至sessionStorage
3.所有HTTP Header Authorization 加上編碼後的token(前後端可約定規則)
4.請求攔截:後臺拿到token後對每個請求進行校驗,若校驗失敗返回401,前端response鉤子裡統一catch error 跳轉至登陸頁面
5.路由跳轉攔截:任意路由跳轉時,在路由beforeEach鉤子裡校驗本地是否存在token,若沒有,則跳轉至登陸頁面
6.登出Logout:清楚本地sessionStorage的token信息
相關推薦
'你真的知道註冊中心原理嗎?不妨先來學習一下 ZooKeeper'
"原文: http://www.justdojava.com/2019/08/10/zk-baisic-knowledge/主題 :ZooKeeperDubbo 通過註冊中心在分佈式環境中實現服務的註冊與發現,而註冊中心通常採用 ZooKeeper,研究註冊中心相關源碼繞不...
'面試官:線程池的工作原理是啥?能手寫一個線程池嗎?'
"為什麼要有線程池這個東西?創建線程對象不像其他對象一樣在JVM分配內存即可,還要調用操作系統內核的API,然後操作系統為線程分配一系列的資源,這個成本就很高了。所以線程是一個重量級對象,應該避免頻繁創建和銷燬再說一下線程池的大概工作流程以前我們運行線程的時候new Thr...
'前端程序員飽和了嗎?我們公司給初級前端開到了12K'
"故事起因:最近我有個剛畢業的學生問我說:我感覺現在前端行業已經飽和了,也不是說飽和了,是初級的前端根本就沒有公司要,哪怕你不要工資也沒公司要你,前端剛學出來,沒有任何的項目經驗和工作經驗,根本就不會有公司要你啊,這是最大的一個問題,而且現在也沒有任何公司找初級前端,實習前...
'低學歷能學Java嗎?'
"縱觀市場各行業發展態勢,近年來,IT互聯網行業對專業技術人才的需求量不減反增,專業人才缺口逐年增大。當下,學習IT互聯網專業技能絕對是個好出路。而且,隨著互聯網的普及,IT行業人才也會越來越稀缺,就業崗位也在逐年增多,人才一直供不應求。Java,自誕生以來,應用規模不斷拓...
'會搞砸你的面試:你知道一個TCP連接上能發起多少個HTTP請求嗎?'
"本文由原作者鬆若章原創發佈,作者主頁:zhihu.com/people/hrsonion/posts,感謝原作者的無私分享。1、引言一道經典的面試題是:從 URL 在瀏覽器被被輸入到頁面展現的過程中發生了什麼?大多數回答都是說請求響應之後 DOM 怎麼被構建,被繪製出來。...
前端:與Vue.js框架及其生態相關的200多道面試題,你都會嗎?
鏈接:https://github.com/haizlin/fe-interview/blob/master/lib/Vue.mdVue框架相關vue渲染模板時怎麼保留模板中的HTML註釋呢?Vue.observable你有了解過嗎?說說看你知道style加scoped屬性...
面試被問到“零拷貝”!你真的理解嗎?
前言從字面意思理解就是數據不需要來回的拷貝,大大提升了系統的性能;這個詞我們也經常在java nio,netty,kafka,RocketMQ等框架中聽到...
推薦中...