Element UI 中路由和許可權校驗的分析及實現

2021-10-08 19:14:32 字數 2368 閱讀 5985

一、路由和許可權校驗

路由和許可權校驗,在參與的專案中是如何處理路由和許可權對映的?

路由處理邏輯分析,如下所示:

路由場景分析,中後台路由常見的,如下所示:

未獲取token:

二、路由和許可權校驗的實現

permission.js中的全域性導航守衛router.beforeeach,**如下所示:

// 定義了全域性導航路由守衛

router.

beforeeach

(async

(to,

from

, next)

=>

) nprogress.

done()

}else

else

=await store.

dispatch

('user/getinfo'

)// 根據使用者的角色,動態生成路由

const accessroutes =

await store.

dispatch

('permission/generateroutes'

, roles)

// 呼叫 router.addroutes 動態新增路由

router.

addroutes

(accessroutes)

// 使用 replace 訪問路由,不會在 history 中留下記錄

next()

}catch

(error)`

) nprogress.

done()

}}}}

else

else`)

nprogress.

done()

}}})

permission.js,完整**如下所示:

import router from

'./router'

import store from

'./store'

import

from

'element-ui'

import nprogress from

'nprogress'

// progress bar

import

'nprogress/nprogress.css'

// progress bar style

import

from

'@/utils/auth'

// get token from cookie

import getpagetitle from

'@/utils/get-page-title'

// 讓顯示的進度條隱藏,旋轉的

// showspinner 可以控制右側的環形進度條是否顯示

nprogress.

configure()

// 白名單

const whitelist =

['/login'

,'/auth-redirect'

]// 定義了全域性導航路由守衛

router.

beforeeach

(async

(to,

from

, next)

=>

) nprogress.

done()

}else

else

=await store.

dispatch

('user/getinfo'

)// 根據使用者的角色,動態生成路由

const accessroutes =

await store.

dispatch

('permission/generateroutes'

, roles)

// 呼叫 router.addroutes 動態新增路由

router.

addroutes

(accessroutes)

// 使用 replace 訪問路由,不會在 history 中留下記錄

next()

}catch

(error)`

) nprogress.

done()

}}}}

else

else`)

nprogress.

done()

}}})

router.

aftereach((

)=>

)

linux 中路由設定

新增主機路由 設定乙個主機路由對於某個特定的主機指定路由資訊。route add host 192.168.1.100 dev eth0 有目的地 192.168.1.100,沒有gw 也就是沒有閘道器 新增主機還可以通過指定閘道器來實現 route add host 192.168.1.11 gw...

codeigniter中路由的組成

遵循path info模式 thinkphp中三種模式中的一種 your site url index.php pages view 1 2 3 pages未知為控制器,view 為方法名 1 view函式的第乙個引數 2 view函式的第二個引數 3 view函式的第三個引數 注 url上的引數多...

MVC中路由的理解

路由就是乙個配置,相當於中轉。通過url訪問 時,路由會獲取當前url,然後根據路由中的規則,執行相應的controller action。當前url是user edit,我一定要執行controller user action edit顯示編輯頁面嗎?在路由中配置所有url是user edit的,...