vue路由守衛+cookie實現頁面跳轉時驗證用戶是否登錄----(二)設置路由守衛


上一篇我們已經封裝好了cookie方法,登錄成功之后也可以吧用戶信息存到cookie中,接下來需要在router/index.js中引入一下cookie.js文件

 

然后繼續添加以下代碼

/*
* beforeEach:從一個頁面跳轉到另外一個頁面時觸發
* to:要跳轉的頁面
* from:從哪個頁面出來
* next:決定是否通過
*/
router.beforeEach((to, from, next) => {
  // 如果跳轉的頁面不存在,跳轉到404頁面
  if(to.matched.length===0){
    next('/404')
  }
  if (cookie.getCookie("openId")) {
    next()
  } else {    
    if (to.path === "/Login") {
      next()
    } else {
      next('/Login')
    }
  }
})

 

 router.beforeEach意思是在router.index設置了一個全局守衛,只要發生頁面跳轉,會執行里面的代碼,首先先去判斷跳轉的頁面是否存在,如果不存在進到404頁面,然后調用cookie.getCookie()方法讀取用戶信息,如果不存在代表沒有登錄,用next('/Login')進入Login登錄頁面進行登錄,如果讀取到了用戶信息,不做攔截直接放行。

 

 

 

 

 

 

擴展

全局后置鈎子

router.afterEach((to,from)=>{})表示從當前頁面離開時進行判斷,一般用來跳轉頁面時提示用戶是否離開該頁面。

路由獨享的守衛

beforeEnter:(to,from,next)=>{},用法與全局守衛一致。只是,將其寫進其中一個路由對象中,只在這個路由下起作用

好了,以上就是cookie+路由守衛實現的跳轉驗證。如有不足之處,歡迎各位大佬指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM