1. 程式人生 > >vue登入路由驗證的實現方法

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

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

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

if('登入成功')
 {sessionStorage.setItem('accessToken' , 寫入登入成功返回的登入令牌或者自定義的判斷字串) }

2、在全域性main.js鉤子函式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例項已經載入完成。這時候直接在瀏覽器的位址列輸入要去的路由,則不會定向到登入路由。

這裡寫圖片描述