vue-router前端權限控制問題
前提綱要:
1.用戶A和用戶B有不一樣的權限。
頁面分左側菜單部分和右側內容部分,右側內容可能有不一樣路徑的不一樣內容
最簡單例子爲點擊左側用戶管理
右側顯示用戶列表
點擊某條內容詳情
右側顯示某一用戶的詳細內容
2.用戶A能夠訪問路徑權限以下:前端
a/list a/detail/:id a/list/:id
用戶B能夠訪問路徑權限以下:vue
b/list b/detail/:id b/list/:id
3.正經常使用戶登錄進去能夠看到本身的菜單,
點擊菜單右側內容部分發生變化,而後在右側操做,更改頁面url,左側菜單不變,右側內容頁發生變化vue-router
碰到問題以下:
用戶B登錄進去點擊菜單進入b/detail/:id
而後保存爲書籤(即保存該路徑)退出
而後用戶A登錄點擊保存的標籤頁,正常獲取左側菜單權限,左側菜單正常顯示,可是右側卻根據url顯示了本身權限外的b/detail/:id
的內容(暫不考慮跟服務端交互問題,雖然說服務端能夠再掉用接口時給出無權限返回,前端再根據返回進行邏輯處理,但即使這樣前端頁面顯示依舊不正常)url
解決方案:
在路由進入以前,根據路由的meta屬性的某一字段比對全部的可訪問權限(這個在登陸時已經獲取了,能夠存在localstorage裏),若是能找到則進去不然跳轉到某個固定頁,這樣就解決了權限問題localstorage