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