// 权限校验
// Vue Router中的前置钩子函数 beforeEach(to,from,next)
// 当进行路由跳转前,进行判断,是否已经登陆过,登录过则允许访问页面,否则回到登录页
import router from './index';
import { getUserInfo } from '@/api/login';
router.beforeEach((to, from, next) => {
// 获取token
// 1.没有token只可以进入登陆页面,进入其他页面不允许
// 2.有token,是否有用户信息
// 2.1有用户信息,所有页面都可以进入
// 2.2 没有用户信息,通过token获取用户信息,有则可以进入所有页面,没有则返回登录页进行登录
const token = localStorage.getItem('mxg-msm-token');
if (!token) {
if (to.path == '/login') {
next();
} else {
next({ path: '/login' });
}
} else {
const user = localStorage.getItem('mxg-msm-user');
if (user) {
next();
} else {
getUserInfo(token).then((res) => {
const user1 = res.data;
if (user1.flag) {
next();
localStorage.setItem('mxg-msm-user', JSON.stringify(user1.data));
} else {
next({ path: '/login' });
}
});
}
}
});
main.js引入
import './router/permission';