使用vue-router的beforeEach鉤子里做登陸頁面訪問權(quán)限驗證

登陸頁面路徑 '/login'
首頁路徑 '/'
beforeEach鉤子函數(shù)筑悴,是一個全局的before鉤子函數(shù)。before each 在每一個路由改變的時候都執(zhí)行一遍
處理頁面訪問權(quán)限驗證,在login頁面使用sessionStorage配合vuex

1.登陸頁面

login(){
      this.$validator.validateAll().then(result=>{
        if(result){
          console.log("成功")
          this.$store.commit('login_in', this.mobile)
          // 跳轉(zhuǎn)回被攔截前路徑 或是 如果是直接訪問login則跳回主頁面
          this.$router.push(this.$route.query.redirect || '/')
        }
      })
    }

2.store.js 頁面

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

let store = new Vuex.Store({
  state:{
    accessToken:null
  },
  mutations:{
    login_in(state, data){
      state.accessToken = data
      sessionStorage.setItem("accessToken", data)
    },
    login_out(state){
      state.accessToken = null
      sessionStorage.removeItem("accessToken")
    }
  }
})

export default store

3.index.js頁面

router.beforeEach((to,from,next)=>{
  // isRequireAuthTrue 
  // 是否已經(jīng)登陸汤纸,驗證身份
  if(sessionStorage.getItem("accessToken")){  
    next()  // 程序正常繼續(xù)運行
  }else{
    if(to.path == "/login"){
      next()   // 程序正常繼續(xù)運行
    }else{
      next({
        path:"/login",       // 跳轉(zhuǎn)到login頁面
        query:{redirect: to.path}   // 記錄要進入的目標(biāo)地址
      })
    }
  }
})

copy:
router.beforeEach((to,from,next)=>{})
當(dāng)一個導(dǎo)航觸發(fā)時粪摘,全局前置守衛(wèi)按照創(chuàng)建順序調(diào)用。守衛(wèi)是異步解析執(zhí)行维苔,此時導(dǎo)航在所有守衛(wèi) resolve 完之前一直處于 等待中碰辅。
每個守衛(wèi)方法接收三個參數(shù):

    • to: Route: 即將要進入的目標(biāo) 路由對象 屬性:path params query hash fullPath name meta

    • from: Route: 當(dāng)前導(dǎo)航正要離開的路由

    • next: Function: 一定要調(diào)用該方法來 resolve 這個鉤子懂昂。執(zhí)行效果依賴 next 方法的調(diào)用參數(shù)。

      • next(): 進行管道中的下一個鉤子没宾。如果全部鉤子執(zhí)行完了凌彬,則導(dǎo)航的狀態(tài)就是 confirmed (確認的)。

      • next(false): 中斷當(dāng)前的導(dǎo)航循衰。如果瀏覽器的 URL 改變了(可能是用戶手動或者瀏覽器后退按鈕)铲敛,那么 URL 地址會重置到 from 路由對應(yīng)的地址。

      • next('/') 或者 next({ path: '/' }): 跳轉(zhuǎn)到一個不同的地址会钝。當(dāng)前的導(dǎo)航被中斷伐蒋,然后進行一個新的導(dǎo)航。

      • next(error): (2.4.0+) 如果傳入 next 的參數(shù)是一個 Error 實例迁酸,則導(dǎo)航會被終止且該錯誤會被傳遞給 router.onError() 注冊過的回調(diào)先鱼。

確保要調(diào)用 next 方法,否則鉤子就不會被 resolved奸鬓。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末焙畔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子串远,更是在濱河造成了極大的恐慌宏多,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澡罚,死亡現(xiàn)場離奇詭異伸但,居然都是意外死亡,警方通過查閱死者的電腦和手機留搔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門更胖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人催式,你說我怎么就攤上這事函喉。” “怎么了荣月?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵管呵,是天一觀的道長。 經(jīng)常有香客問我哺窄,道長捐下,這世上最難降的妖魔是什么账锹? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮坷襟,結(jié)果婚禮上奸柬,老公的妹妹穿的比我還像新娘。我一直安慰自己婴程,他們只是感情好廓奕,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著档叔,像睡著了一般桌粉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衙四,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天铃肯,我揣著相機與錄音,去河邊找鬼传蹈。 笑死押逼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惦界。 我是一名探鬼主播挑格,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼表锻!你這毒婦竟也來了恕齐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瞬逊,失蹤者是張志新(化名)和其女友劉穎显歧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體确镊,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡士骤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蕾域。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拷肌。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖旨巷,靈堂內(nèi)的尸體忽然破棺而出巨缘,到底是詐尸還是另有隱情,我是刑警寧澤采呐,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布若锁,位于F島的核電站,受9級特大地震影響斧吐,放射性物質(zhì)發(fā)生泄漏又固。R本人自食惡果不足惜仲器,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仰冠。 院中可真熱鬧乏冀,春花似錦、人聲如沸洋只。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽木张。三九已至众辨,卻和暖如春端三,著一層夾襖步出監(jiān)牢的瞬間舷礼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工郊闯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妻献,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓团赁,卻偏偏與公主長得像育拨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子欢摄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 學(xué)習(xí)目的 學(xué)習(xí)Vue的必備技能熬丧,必須 熟練使用 Vue-router,能夠在實際項目中運用怀挠。 Vue-rout...
    _1633_閱讀 92,112評論 3 58
  • 前言 vue-router是什么:是vue.js官方的路由管理器和vue.js的核心深度的集成析蝴,讓開發(fā)者更加簡單的...
    GUAN_one閱讀 3,711評論 0 2
  • 導(dǎo)航守衛(wèi) 導(dǎo)航守衛(wèi)主要用來通過跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航。 參數(shù)或查詢的改變并不會觸發(fā)進入/離開的導(dǎo)航守衛(wèi)绿淋。 1闷畸、全...
    SailingBytes閱讀 1,175評論 1 3
  • 介紹 vue-router是一個vue插件。其實質(zhì)是在location.hash吞滞、location.replace...
    AmazRan閱讀 1,551評論 0 6
  • vue-router學(xué)習(xí)筆記 安裝 并且如果在一個模塊化工程中使用它佑菩,必須要通過Vue.use()明確地安裝路由功...
    EL_PSY_CONGROO閱讀 586評論 0 0