首頁 web前端 js教程 Vue的路由權限管理

Vue的路由權限管理

Mar 28, 2018 pm 04:57 PM
權限 管理 路由

這次帶給大家Vue的路由權限管理,Vue路由權限管理的注意事項有哪些,下面就是實戰案例,一起來看一下。

前言

曾經在工作上對vue 路由權限管理這方面有過研究,這幾天又看到了幾篇相關的文章,再加上昨天電面中又再一次提及到,就索性整理了一下自己的一些看法,希望對大家有幫助。

實作

大體上實作的想法很簡單,先上圖:

無非是將路由配置依使用者類型分割為使用者路由和基本路由,不同的使用者類型可能存在不同的使用者路由,具體依賴實際業務。

  1. 使用者路由: 目前使用者所特有的路由

  2. #基本路由:所有使用者都可以存取的路由

實現控制的方式分兩種:

透過vue-router addRoutes 方法注入路由實現控制
透過vue-router beforeEach 鉤子限制路由跳轉

addRoutes 方式:

透過請求服務端取得目前使用者路由配置,編碼為vue-router 所支援的基本格式(具體如何編碼取決於前後端協商好的資料格式),透過調用this.$router.addRoutes 方法將編碼好的使用者路由注入到現有的vue-router 實例中去,以實現使用者路由。

beforeEach 方式

透過請求服務端取得目前使用者路由配置,透過註冊router.beforeEach 鉤子對路由的每次跳轉進行管理,每次跳轉都進行檢查,如果目標路由不存再給基本路由及目前使用者的使用者路由中,取消跳轉,轉為跳轉錯誤頁。

以上兩種方式都需要在 vue-router 中設定錯誤頁,以確保使用者感知權限不足。

兩種方式的原理其實都是一樣的,只不過addRoutes 方式透過注入路由配置告訴vue-router :「目前我們就只有這些路由,其它路由位址我們一概不認”,而beforeEach 則更多的是依賴我們手動去幫vue-router 辨別什麼頁面可以去,什麼頁面不可以去。說白了也就是 自動 與 手動 的差別。說到這,估計大家都會覺得既然是 自動 的,那肯定是 addRoutes 最方便快捷了,還能簡化業務代碼,筆者一開始也是這麼認為的,但是!很多人都忽略了一點:

addRoutes 方法只是幫你注入新的路由,並沒有幫你剔除其它路由!

設想存在這麼一種情況:用戶在自己電腦上登入了管理員帳號,這個時候會向路由中註入管理員的路由,然後再退出登錄,保持頁面不刷新,改用普通用戶帳號進行登錄,這個時候又會向路由中註入普通用戶的路由,那麼,在路由中將存在兩種用戶類型的路由,即使用戶不感知,透過改變url,普通用戶也可以訪問管理員的頁面!

對於這個問題,也有一個解決方案:

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const createRouter = () => new Router({
 mode: 'history',
 routes: []
})
const router = createRouter()
export function resetRouter () {
 const newRouter = createRouter()
 router.matcher = newRouter.matcher
}
export default router
登入後複製

透過新建一個全新的Router,然後將新的Router.matcher 賦給目前頁面的管理Router,以達到更新路由配置的目的。

筆者做了一個小demo,大家可以去體驗一下。

關於上述問題,在vue-router 的github issues 下有過討論,分別是:

Add option to Reset/Delete Routes #1436

#Feature request: replace routes dynamically #1234

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

angularjs壓縮後檔案報錯怎麼解決

在vue中如何使用axios進行跨域處理

以上是Vue的路由權限管理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
一鍵開啟root權限(快速取得root權限) 一鍵開啟root權限(快速取得root權限) Jun 02, 2024 pm 05:32 PM

可以讓使用者對系統進行更深入的操作和定制,root權限是一種管理員權限,在Android系統中。取得root權限通常需要一系列繁瑣的步驟,對於一般使用者來說可能不太友善、然而。透過一鍵開啟root權限,本文將介紹一種簡單而有效的方法,幫助使用者輕鬆取得系統權限。了解root權限的重要性及風險擁有更大的自由度,root權限可以讓使用者完全控製手機系統。加強安全控制等,客製化主題、使用者可刪除預先安裝應用程式。例如誤刪系統檔案導致系統崩潰,過度使用root權限也有風險、不慎安裝惡意軟體等,然而。在使用root權限前

qq空間如何設定權限訪問 qq空間如何設定權限訪問 Feb 23, 2024 pm 02:22 PM

qq空間如何設定權限存取?在QQ空間中是可以設定權限訪問,但是多數的小夥伴不知道QQ空間如何設定權限存取的功能,接下來就是小編為使用者帶來的qq空間設定權限存取方法圖文教程,有興趣的用戶快來一起看看吧! QQ使用教學qq空間如何設定權限存取1、先開啟QQ應用,主頁點選左上角【頭像】點選;2、然後左側展開個人資訊專區,點選左下角【設定】功能;3、進入設定頁面滑動,找到其中的【隱私】選項;4、接下來在隱私的介面,其中的【權限設定】服務;5、之後挑戰到最新頁面選擇【空間動態】;6、再次在QQ空間設置

Discuz論壇權限管理:閱讀權限設定指南 Discuz論壇權限管理:閱讀權限設定指南 Mar 10, 2024 pm 05:33 PM

Discuz論壇權限管理:閱讀權限設定指南在Discuz論壇管理中,權限設定是至關重要的一環。其中,閱讀權限的設定尤其重要,它決定了不同使用者在論壇中能夠看到的內容範圍。本文將詳細介紹Discuz論壇的閱讀權限設置,以及如何針對不同的需求進行靈活的配置。一、閱讀權限基礎概念在Discuz論壇中,閱讀權限主要有以下幾個概念需要了解:預設閱讀權限:新使用者註冊後預設

Java Apache Camel:打造靈活且有效率的服務導向架構 Java Apache Camel:打造靈活且有效率的服務導向架構 Feb 19, 2024 pm 04:12 PM

ApacheCamel是一個基於企業服務匯流排(ESB)的整合框架,它可以輕鬆地將不同的應用程式、服務和資料來源整合在一起,從而實現複雜的業務流程自動化。 ApacheCamel使用基於路由的設定方式,可以輕鬆定義和管理整合流程。 ApacheCamel的主要特點包括:靈活性:ApacheCamel可以輕鬆地與各種應用程式、服務和資料來源整合。它支援多種協議,包括Http、JMS、SOAP、FTP等。高效性:ApacheCamel非常高效,它可以處理大量的訊息。它使用非同步訊息傳遞機制,可以提高效能。可擴

trustedinstaller權限怎麼獲得「推薦取得TrustedInstaller權限操作步驟」 trustedinstaller權限怎麼獲得「推薦取得TrustedInstaller權限操作步驟」 Feb 06, 2024 pm 05:48 PM

這篇文章將帶你了解TI的本質是什麼,進一步探索如何在powershell和NtObjectManager模組的幫助下取得TI權限,以便在作業系統中完成任何你想要的操作。如果你曾經管理過Windows系統,那麼你應該熟悉trustedInstaller(TI)群組的概念。 TI群組在系統檔案和登錄的操作上具有重要的權限。舉個例子,你可以查看System32資料夾下檔案的屬性,在安全性選項中,TI群組和檔案擁有者俱有刪除和修改檔案的權限,甚至管理員也無法直接修改安全選項。因此,對於系統文件和註冊表的操作,需

win10右鍵選單管理打不開怎麼辦 win10右鍵選單管理打不開怎麼辦 Jan 04, 2024 pm 07:07 PM

我們在使用win10系統的時候,使用滑鼠去右鍵桌面或是右鍵選單的時候,發現選單等都打不開,無法正常的去使用電腦了,這時候就需要恢復系統來解決問題。 win10右鍵選單管理打不開:1、先開啟我們的控制面板,然後點選。 2、然後點選安全性和維護下的。 3.再點擊右側的來恢復系統即可。 4.如果還是無法使用,是看是否是滑鼠本身出了問題。 5.如果確定滑鼠沒有問題的話,按下+,輸入。 6.執行完畢後,重啟電腦即可。

win7電腦設定everyone權限方法介紹 win7電腦設定everyone權限方法介紹 Mar 26, 2024 pm 04:11 PM

1.以e盤為例。開啟【計算機】,並點選【e盤】右擊【屬性】。如圖所示:2.在【視窗】頁面中,將介面切換到【安全性】選項,點選下方的【編輯】選項。如圖所示:3、在【權限】的選項中,並點選【新增】選項。如圖所示:4、彈出用戶和群組視窗點選【進階】選項。如圖所示:5、依序點選展開【立即尋找】—【everyone】選項,完成後,點選確定。如圖所示:6.當看到【e盤權限】頁面中的【群組或用戶中】新增了【everyone】這個用戶,選擇【everyone】並在【完全控制】前面打鉤,設定完成後,按下【確定】即可

如何對磁碟進行分割管理 如何對磁碟進行分割管理 Feb 25, 2024 pm 03:33 PM

磁碟管理怎麼分割區隨著電腦科技的不斷發展,磁碟管理也成為了我們電腦使用過程中不可或缺的一部分。而磁碟分割作為磁碟管理的重要環節,它可以將一個硬碟劃分為多個部分,使得我們能夠更有彈性地儲存和管理資料。那麼,磁碟管理怎麼分割區呢?下面,我將給大家詳細介紹。首先,我們需要明確一點,磁碟分割區並非只有一種分法,根據不同的需求和目的,我們可以靈活地選擇合適的磁碟分割方式。常

See all articles