| | |
| | | router.beforeEach(async(to, from, next) => { |
| | | // start progress bar |
| | | NProgress.start() |
| | | |
| | | console.log(to) |
| | | if (to.query.code) { |
| | | console.log(to.query.code) |
| | | store.dispatch('user/tideLogin', to.query.code).then(res => { |
| | | next({ path: '/' }) |
| | | }) |
| | | } |
| | | // set page title |
| | | document.title = getPageTitle(to.meta.title) |
| | | |
| | | // determine whether the user has logged in |
| | | const hasToken = getToken() |
| | | |
| | | // console.log('路由守卫', hasToken) |
| | | if (hasToken) { |
| | | // console.log('服务器有token') |
| | | if (to.path === '/login') { |
| | | // if is logged in, redirect to the home page |
| | | next({ path: '/' }) |
| | | NProgress.done() |
| | | } else { |
| | | // console.log('服务器有token,访问不是login页面') |
| | | const hasGetUserInfo = store.getters.name |
| | | if (hasGetUserInfo) { |
| | | next() |
| | | } else { |
| | | // console.log('没有用户信息') |
| | | try { |
| | | // get user info |
| | | await store.dispatch('user/getInfo') |
| | | |
| | | // console.log('获取用户信息') |
| | | const userInfo = await store.dispatch('user/getInfo') |
| | | // console.log('获取用户数据成功', userInfo) |
| | | next() |
| | | } catch (error) { |
| | | // remove token and go to login page to re-login |
| | |
| | | next() |
| | | } else { |
| | | // other pages that do not have permission to access are redirected to the login page. |
| | | // next() |
| | | next(`/login?redirect=${to.path}`) |
| | | NProgress.done() |
| | | } |