一、路由和許可權校驗
路由和許可權校驗,在參與的專案中是如何處理路由和許可權對映的?
路由處理邏輯分析,如下所示:
路由場景分析,中後台路由常見的,如下所示:
未獲取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的,...