1、如果用户没有登录,但是直接通过URL访问特定网页,需要重新导航到登录页面
router.beforeEach(( to, from , next ) => {
//如果用户访问的登录页,直接放行
if (to.path === '/login') return next ()
//从sessionStorage中获取到保存的token值
const tokenStr = window.sessionStorage.getItem('token')
//没有token,强制跳转到登录页面
if(!tokenStr) return next('/login')
next()
})
export default router
*挂载路由导航守卫
*to将要访问的路劲
*from代表从哪个路劲跳转而来
*next是一个函数,表示放行
*next()放行 next('/login')强制跳转
2.路由拦截、在请求头加token,每次请求都要携带token
import axios from axios
//配置请求的跟路径
axios . defaults. baseURL = 'http://127 .0. 0.1:8888api/private/v1/ '
axios . interceptors . request . use(config => {
console . log( config)
config . headers . Authorization = window. sessionStorage. getItem(' token')
//最后必须写 return config
return config
})
Vue . prototype .$http = axios