vue路由跳轉時判斷用戶是否登錄功能


通過判斷該用戶是否登錄過,如果沒有登錄則跳轉到login登錄路由,如果登錄則正常跳轉。

  一丶首先在用戶登錄前后分別給出一個狀態來標識此用戶是否登錄(建議用vuex);

      簡單用vuex表示一下,不會可以自己去官網多看看;

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

var state = {
    isLogin:0,         //初始時候給一個 isLogin=0 表示用戶未登錄
};

const mutations = {
    changeLogin(state,data){
        state.isLogin = data;
    }

};

二丶在用戶登錄時改變登錄狀態;

  this.$store.commit('changeLogin','100')     //登錄后改變登錄狀態 isLogin = 100 ;

三丶重點來了;

  在你的路由入口加上導航鈎子,具體什么意思看代碼;

     一丶設置需要校驗的路由

  { path: '/admin', 
component: Admin,
meta:{auth:true} // 設置當前路由需要校驗 不需要校驗的路由就不用寫了;不要問為什么,自己去看官網
   }   

 二丶路由跳轉並校驗

router.beforeEach((to,from,next) => {
    if(to.matched.some( m => m.meta.auth)){
        // 對路由進行驗證
        if(store.state.isLogin=='100') { // 已經登陸
            next()     // 正常跳轉到你設置好的頁面
        }else{
            // 未登錄則跳轉到登陸界面,query:{ Rurl: to.fullPath}表示把當前路由信息傳遞過去方便登錄后跳轉回來;
       next({path:'/login',query:{ Rurl: to.fullPath} })
     }
    }
else{
      next()
  }
})

 


免責聲明!

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



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