首頁  >  文章  >  web前端  >  vue登入路由驗證的實作方法

vue登入路由驗證的實作方法

小云云
小云云原創
2018-05-15 14:45:142999瀏覽

vue的專案的登入狀態如果用vuex狀態管理,頁面一刷新vuex管理的狀態就會消失,這樣登入路由驗證就沒有意義了。可以將登入的狀態寫入web Storage中進行儲存管理。本主要為大家詳細介紹了vue登入路由驗證的實現,具有一定的參考價值,有興趣的小夥伴們可以參考一下,希望能幫助大家。

步驟如下:

1、在登入元件裡,將登入狀態寫入web Storage裡。 (一般寫入session Storage,會話關閉,儲存資料自動刪除)

if('登录成功') 
 {sessionStorage.setItem('accessToken' , 写入登录成功返回的登录令牌或者自定义的判断字符串) }

2、在需要登入驗證的路由元資訊中加入登入驗證識別requiresAuth(自訂)    
[html] view plain copy

routers: [ 
      { path: '/listInfo', 
         name: 'listInfo', 
         component: listInfo, 
         meta: { requiresAuth: true  
               } 
          } 
       ]

3、在全域鉤子函數beforeEach中驗證頁面是否需要登入            

router.beforeEach((to, from, next) => {  
    //to即将进入的目标路由对象,from当前导航正要离开的路由, next : 下一步执行的函数钩子
    if(to.path === '/login') { next() } // 如果即将进入登录路由,则直接放行
     else {   //进入的不是登录路由
         if(to.meta.requiresAuth && !sessionStorage.getItem('accessToken')) {next({ path: '/login' })} 
       //下一跳路由需要登录验证,并且还未登录,则路由定向到 登录路由
       else { next() }} 
      //如果不需要登录验证,或者已经登录成功,则直接放行
    }

# 注意點:beforeEach這個全域鉤子要放到全域元件的前面,放到全域元件的前面,後面放到全域元件的Vue實例已經載入完成。這時候直接在瀏覽器的網址列輸入要去的路由,則不會定向到登入路由。

相關推薦:

「詳解vue中路由驗證與對應攔截使用方法

########################################################################################################################################################################### ##PHP框架之簡單的路由器############Vue.js建置路由封包如何解決? ######

以上是vue登入路由驗證的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn