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中文網其他相關文章!