본문 바로가기
보드게임 긱 추천 게임
Wizard Thumbnail
BoardGameGeek 사이트에서 인기순위 상위 100개 중 랜덤 3개를 보여줍니다.
BGG
귀펀치토끼는 부서지지 않는다.
주소(D)
북마크/메모장

index.ts 백업

import {
  createRouter,
  createWebHistory,
  RouteRecordRaw,
} from 'vue-router';
import {
  routeHelper,
  authentication,
} from '@utils';

import {
  LoginLayout,
  DefaultLayout,
} from '@layouts';

import {
  Example,
  Example2,
  TodoList,
  Counter,
} from '@views';

import {
  login,
  home,
  example,
  example2,
  todoList,
  counter,
} from './routePaths';

const routes: Array<RouteRecordRaw> = [
  {
    path: login,
    name: routeHelper.getRouteName(login),
    component: LoginLayout,
  },
  {
    path: home,
    name: routeHelper.getRouteName(home),
    component: DefaultLayout,
    children: [
      {
        path: example,
        name: routeHelper.getRouteName(example),
        component: Example,
      },
      {
        path: example2,
        name: routeHelper.getRouteName(example2),
        component: Example2,
      },
      {
        path: todoList,
        name: routeHelper.getRouteName(todoList),
        component: TodoList,
      },
      {
        path: counter,
        name: routeHelper.getRouteName(counter),
        component: Counter,
      },
    ]
  },
];

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes,
});

// 라우터 정보가 변경 될때마다 호출
// 매 페이지 인증검사 실시
// 참고페이지
// https://router.vuejs.org/kr/api/#router-beforeeach
router.beforeEach(async (to, from, next) => {
  if (to.name === 'login' || from.name === 'login') {
    next();
  } else {
    // 쿠키를 체크 합니다.
    const errorType = await authentication.cookieCheck();
    console.log('errorType', errorType);

    if (errorType === 'success') {
      next();
    } else if (errorType === 'refreshTokenRefresh') {
      // 쿠키가 만료되어서 로그인 페이지로 이동 합니다.
      next({
        name: routeHelper.getRouteName(login),
        params: {
          refreshTokenEnd: 'refreshTokenEnd',
        },
      });
    } else if (errorType === 'accessTokenRefresh') {
      // cookieCheck에 의해 accessToken이 재발급 되었으므로, 이동합니다.
      next();
    }
  }
});

export default router;
완료
내 컴퓨터