Commit 0912196060c100c605e8412fed78eebdaf25198e

Authored by dv
1 parent 0ec38cbe

router跳转

src/App.vue
1 1 <script setup>
2 2 import { RouterLink, RouterView } from 'vue-router'
3 3 import {onMounted} from "vue";
4   -
  4 +import { useRouter } from 'vue-router'
  5 +const router = useRouter()
5 6 onMounted(() => {
  7 + const isAuthenticated = sessionStorage.getItem('isAuthenticated')
  8 + // 需要认证但未登录 → 跳转登录页
  9 + if (!isAuthenticated) {
  10 + router.push('/login')
  11 + }else{
  12 + // 已登录访问登录页 → 跳转首页
  13 + router.push('/')
  14 + }
6 15 window.addEventListener('beforeunload', () => {
7 16 sessionStorage.removeItem('isAuthenticated')
8 17 })
... ...
src/router/index.js
... ... @@ -6,48 +6,51 @@ const router = createRouter({
6 6 history: createWebHistory(import.meta.env.BASE_URL),
7 7 routes: [
8 8 {
9   - path: '/',
10   - name: 'home',
  9 + path: "/",
  10 + redirect: "/home",
  11 + },
  12 + {
  13 + path: "/home",
  14 + name: "home",
11 15 component: HomeView,
12 16 meta: {
13   - title: 'SN管理',
14   - requiresAuth: true // 添加这行,标记该路由需要认证
15   - }
16   -
  17 + title: "SN管理",
  18 + requiresAuth: true, // 添加这行,标记该路由需要认证
  19 + },
17 20 },
18 21 {
19   - path: '/login',
20   - name: 'Login',
  22 + path: "/login",
  23 + name: "Login",
21 24 component: Login,
22 25 meta: {
23   - requiresAuth: false // 明确表示登录页不需要认证
24   - }
25   - }
26   - ]
27   -})
  26 + requiresAuth: false, // 明确表示登录页不需要认证
  27 + },
  28 + },
  29 + ],
  30 +});
28 31  
29 32 // 路由守卫
30   -router.beforeEach((to, from, next) => {
31   - const isAuthenticated = sessionStorage.getItem('isAuthenticated')
  33 +// router.beforeEach((to, from, next) => {
  34 +// const isAuthenticated = sessionStorage.getItem('isAuthenticated')
32 35  
33   - if (to.path === '/login' && !isAuthenticated) {
34   - return next('/login')
35   - }
  36 +// // if (to.path === '/login' && !isAuthenticated) {
  37 +// // return next('/login')
  38 +// // }
36 39  
37   - // 需要认证但未登录 → 跳转登录页
38   - if (to.meta.requiresAuth && !isAuthenticated) {
39   - return next('/login')
40   - }
  40 +// // 需要认证但未登录 → 跳转登录页
  41 +// if (to.meta.requiresAuth && !isAuthenticated) {
  42 +// return next('/login')
  43 +// }
41 44  
42   - // 已登录但访问登录页 → 跳转首页
43   - if (to.path === '/login' && isAuthenticated) {
44   - return next('/')
45   - }
  45 +// // 已登录但访问登录页 → 跳转首页
  46 +// if (to.path === '/login' && isAuthenticated) {
  47 +// return next('/')
  48 +// }
46 49  
47 50  
48 51  
49   - next()
50   -})
  52 +// next()
  53 +// })
51 54  
52 55  
53 56 export default router
... ...