伸手黨系列一:Vue路由守衛及頁面登錄權限控制的設置方法

①先在我們的登錄頁面存儲一個登錄數據

// 登錄成功時保存一個登錄狀態;
sessionStorage.setItem("flag", 1);

② 添加路由守衛

方法一: 直接在路由中添加
const router = new VueRouter({ ... })
    // 路由守衛 
router.beforeEach((to, from, next) => {
    // ...
})

方法二:當我們使用的是export default 方法時可以在main.js中添加 router.beforeEach((to, from, next) => { })方法。
const Recruit = resolve => require(['../components/common/main/index.vue'], resolve);

export default new Router({
  routes: [
    // 登錄 
    {
      path: path.login.path,
      name: path.login.path,
      component: Login,
    }, 
    .........

③ 在路由當中添加自定義字段requireAuth,判斷當前路由是否需要登錄。

下圖中1是設置多權限時的設置方法,下圖中2是單權限設置方法在這裏插入圖片描述

④ 在路由守衛中添加我們自己的代碼邏輯。

// 路由守衛 
router.beforeEach((to,from,next)=>{
    
    let flag = sessionStorage.getItem('flag ')

    if(to.meta.requireAuth == true){ // 需要登錄權限進入的路由
        if(!flag){                   // 獲取不到登錄信息
            next({
                path: '/login'
            })
        }else{                       // 獲取到登錄信息,進行下一步
            return next();
        }
    }else{                           // 不需要登錄權限的路由直接進行下一步
        return next();
    }
})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章