成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

后臺管理系統如何利用Vue-Router做權限驗證管理

開發 項目管理
今天我們就來講一下在后臺的權限管理系統中,Vue-Router是如何配合實現的。

前沿

后臺管理系統中權限驗證是比較核心的一塊內容,每個登錄用戶都有對應的角色,每個角色都有對應的權限,比如普通用戶只有查看權限,管理員用戶有編輯權限,所以不同的用戶角色登錄進來后,看到的頁面菜單是不一樣的

今天我們就來講一下在后臺的權限管理系統中,Vue-Router是如何配合實現的

后臺管理系統

具體實現

其實要實現起來也比較簡單,主要是借助Vue-Router的兩個api

1、addRoutes

通過 router.addRoutes 動態掛載路由信息,用戶成功登錄后,由后臺返回當前用戶所具有的權限菜單

// 登錄成功后,后臺返回權限數據如下
const menuList= [
{
// 菜單名字
name: '文章管理',
// 是否是菜單,true是,false是頁面
isFolder: true,
// 圖標
icon: 'article',
// 是否在導航欄不顯示,false表示顯示
hidden: false,
// 路由url
url: '/article',
// 子菜單
menuList: [{
// 菜單名字
name: '文章編輯',
// 是否是菜單,true是,false是頁面
isFolder: false,
// 圖標
icon: 'edit',
// 是否在導航欄不顯示,false表示顯示
hidden: false,
// 路由url
url: '/article/edit',
// 子菜單
menuList: [],
}]
},
{
name: '用戶管理',
isFolder: false,
icon: 'user',
hidden: false,
url: '/user/manage',
menuList: [],
}
]

// 我們根據Vue-Router需要的數據
// 把上面后臺返回的數據做一次轉化
const routes= [{
// 路由路徑
path: '/article',
// 如果是菜單,那么引用通用的布局模板
component: () => import('@/views/layout.vue'),
meta: {
// 圖標
icon: 'article',
// 菜單名字
title: '文章管理',
// 是否在導航欄隱藏
hidden: false,
},
children: [{
// 這是頁面路由
path: '/article/edit',
name: 'article/edit',
// 具體的頁面組件
component: () => import('@/views/article/edit.vue'),
meta: {
// 圖標
icon: 'edit',
// 頁面名字
title: '文章編輯',
// 是否在導航欄隱藏
hidden: false,
},
}],
},
{
path: '/article/edit',
name: 'article/edit',
component: () => import('@/views/article/edit.vue'),
meta: {
icon: 'edit',
title: '文章編輯',
hidden: false,
},
},
]

// 最開始的路由配置是有一個登錄頁的
const initRoutes = [
{
path: '/login',
name: 'Login',
component: () => import('@/views/login'),
meta: {
icon: '',
title: '登錄',
hidden: true,
},
},
]

// 登錄成功后
// 再把動態生成的路由信息和登錄頁的路由拼接起來
// 生成最后的路由信息
router.addRoutes(initRoutes.concat(routes))

// 最后通過router.push(url)
// 跳轉到動態生成的第一個路由頁面

至于頁面內部的按鈕根據用戶角色顯示和隱藏,比如說普通用戶是看不到頁面的“編輯”按鈕

其實我們可以在用戶登錄成功后,讓后臺再把當前這個用戶的角色信息返回并存在Vuex中,比如返回['user']代表普通用戶,返回['manage']代表管理員,返回['user','mange']代表又有管理員的權限和又有普通用戶的權限,然后我們就可以在頁面中根據這個值判定是否顯示對應的按鈕

2、beforeEach

通過 router.beforeEach 這個導航守衛,控制沒有登錄的用戶,始終只能先去登錄頁登錄,如果是已經登錄過的,那么就直接進入對應頁面

// 這里可以放一些,不需要權限校驗的菜單
const NoAuthUrlList = [
'/500',
'/demo',
]
router.beforeEach((to, from, next) => {
if (NoAuthUrlList.includes(to.path)) {
// 不需要權限校驗的,直接進入頁面
next()
} else {
// 需要權限校驗的
if (!store.getters.token) {
// 沒有token代表沒有登錄過
// 直接去登錄頁
next('/login')
} else {
// 有token
// 直接進入登錄頁
next()
}
}
})

好了Vue-Router做權限驗證管理就講到這里

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-11-11 08:20:47

Vue 技巧 開發工具

2025-01-07 08:00:00

2022-02-10 10:10:03

數據庫表權限表數據庫操作

2021-12-14 19:40:07

Node路由Vue

2024-05-06 00:00:00

后臺管理系統

2022-02-02 21:29:39

路由模式Vue-Router

2025-01-03 09:34:54

2025-04-09 09:29:57

2023-07-31 11:43:45

視頻管理系VMS

2011-09-02 11:39:53

2022-06-24 07:15:53

Vuehistory模式

2024-08-19 09:25:42

2010-04-09 17:35:22

2025-05-19 08:10:00

PythonDashGo開源

2025-02-12 09:00:00

2023-12-14 08:13:56

2021-01-12 15:54:03

Vue開發管理系統

2010-04-14 14:30:28

Unix操作系統

2021-04-27 07:39:40

Vue后臺管理

2025-05-15 08:35:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区国产精品 | 国产欧美二区 | 欧美精品久久 | 亚洲一区在线日韩在线深爱 | 久久男人 | 视频一区二区在线观看 | 男人影音| 免费在线观看一级毛片 | 成人在线观看亚洲 | 亚洲精品一级 | 免费成人午夜 | 久久人人爽人人爽人人片av免费 | 91资源在线观看 | 亚洲精品专区 | 午夜成人免费视频 | 中文字幕在线观看一区二区 | 91精品国产91久久久久久密臀 | 亚洲欧美日韩中文字幕一区二区三区 | 日本污视频| 免费一级黄色 | 久久九九色 | 超碰在线国产 | 久久伊人一区二区 | 国产一在线观看 | 久久精品一区二区 | 国产福利在线小视频 | 人人干在线视频 | 亚洲精品国产偷自在线观看 | 在线日韩| 国产精品视频不卡 | 国产精品一区二区在线 | 日韩精品亚洲专区在线观看 | 日韩一级不卡 | 亚洲综合视频 | 99精品视频一区二区三区 | 天天操夜夜操 | 久久久久国产 | 人人干人人干人人 | 99精品久久 | 91在线电影 | 国产成人精品免费 |