在main.js 文件中
1 import router from './router' 2 router.beforeEach((to, from, next) => { 3 // 阻止路由跳转 4 if (满足阻止条件时) { 5 next(false) 6 return false 7 } 8 // 如果传入的url中有token,则不必跳转登录页 9 if (window.location.href.indexOf('token') > -1 && window.location.href.indexOf('?') > -1 && (router.mode === 'hash' || router.mode === 'history')) { 10 let params = '' 11 if (router.mode === 'hash') { 12 params = window.location.href.split('#')[1] 13 params = params.split('?')[1] 14 } else { 15 params = window.location.href.split('?')[1] 16 } 17 let paramsArray = params.split('&') 18 let query = Object.create(null) 19 paramsArray.forEach(elem => { 20 let e = elem.split('=') 21 query[e[0]] = e[1] 22 }) 23 store.commit('userInfo', query) 24 $axios.defaults.headers.Authorization = 'Bearer ' + query.token // 防止登录成功token还是undefined 25 next() 26 } else if (to.path === '/login' || store.state.userInfo.token) { 27 next() 28 } else { 29 next('/login') 30 } 31 return false 32 })