| | |
| | | import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' |
| | | import { isLoggedIn } from '@/utils/auth' |
| | | import { isLoggedIn, getToken, isTokenExpired } from '@/utils/auth' |
| | | |
| | | const routes: RouteRecordRaw[] = [ |
| | | { |
| | |
| | | router.beforeEach((to, from, next) => { |
| | | // 如果是登录页面,直接放行 |
| | | if (to.path === '/login') { |
| | | // 如果已经登录,重定向到首页 |
| | | if (isLoggedIn()) { |
| | | // 仅在“有token且未过期且本地已记录登录信息”时才从登录页跳转到首页 |
| | | const t = getToken() |
| | | if (t && !isTokenExpired(t) && isLoggedIn()) { |
| | | next('/') |
| | | } else { |
| | | next() |
| | |
| | | return |
| | | } |
| | | |
| | | // 检查是否已登录 |
| | | if (!isLoggedIn()) { |
| | | // 未登录,重定向到登录页 |
| | | // 检查是否已登录且token未过期 |
| | | const token = getToken() |
| | | if (!token || isTokenExpired(token) || !isLoggedIn()) { |
| | | next('/login') |
| | | return |
| | | } |