通常在項目里,我們需要用戶進(jìn)行登錄,才能讓用戶查看項目。
在后臺管理系統(tǒng)中,會根據(jù)不同的用戶權(quán)限展示不同的內(nèi)容。
在用戶訪問頁面之前,我們通過全局前置守衛(wèi)對路由進(jìn)行攔截,看看你是不是可以通過。
通過的標(biāo)準(zhǔn)是否登錄,如果登錄就通過放行,沒有通過就打回。
// 不需要路由驗證頁面 const whiteList = ['login', 'index'] router.beforeEach((to, from, next) => { // 確定用戶是否已登錄 const hasToken = false // 這里就是路由是否通過標(biāo)準(zhǔn),一般都是通過token來驗證 if (hasToken) { // 登錄 if (to.path === '/login') { // 如果已登錄,請重定向到主頁 next({ path: '/index' }) return } next() } else { if (whiteList.indexOf(to.name) !== -1) { // 在免費登錄白名單中,直接進(jìn)入 next() } else { // 沒有訪問權(quán)限的其他頁將重定向到登錄頁。
next(`/login`) } } }) 需要注意的一點是,用戶沒有登錄,是需要跳轉(zhuǎn)到登錄頁面,如果在白名單里面沒有登錄頁或者沒有next(),頁面一直跳轉(zhuǎn)直到內(nèi)存溢出。
每個項目的驗證是否擁有權(quán)限不一樣,權(quán)限判斷那一塊可以根據(jù)自己的實項目需求來進(jìn)行操作。