import Vue from ‘vue‘ import Router from ‘vue-router‘ import Login from ‘./components/Login.vue‘ import Home from ‘./components/Home.vue‘ import Welcome from ‘./components/Welcome.vue‘ import Users from ‘./components/user/Users.vue‘ import Rights from ‘./components/power/Rights.vue‘ import Roles from ‘./components/power/Roles.vue‘ Vue.use(Router) const router = new Router({ routes: [ { path: ‘/‘, redirect: ‘/login‘ }, { path: ‘/login‘, component: Login }, { path: ‘/home‘, component: Home, redirect: ‘/welcome‘, children: [ { path: ‘/welcome‘, component: Welcome }, { path: ‘/users‘, component: Users }, { path: ‘/rights‘, component: Rights }, { path: ‘/roles‘, component: Roles } ] } ] }) // 挂载路由导航守卫 防止 不登录 直接访问页面 router.beforeEach((to, from, next) => { // to 将要访问的路径 // from 代表从哪个路径跳转而来 // next 是一个函数,表示放行 // next() 放行 next(‘/login‘) 强制跳转 if (to.path === ‘/login‘) return next()
//项目中出了登录之外的其他API接口,必须在登录之后才能访问
// 1.2 token 只应在当前网站打开期间生效,所以将 token 保存在 sessionStorage 中
// 获取token
const tokenStr = window.sessionStorage.getItem(‘token‘) if (!tokenStr) return next(‘/login‘) next() }) export default router
原文地址:https://www.cnblogs.com/jinsuo/p/12426496.html
时间: 2024-10-08 22:18:55