이시안 개발 블로그

vue-router 초기 화면 설정과 없는 URL 접근 막기 본문

🌐Web/Vue.js

vue-router 초기 화면 설정과 없는 URL 접근 막기

ICAN 2022. 2. 26. 19:45

웹 페이지로 접근 시 초기화면으로 메인 페이지 대신 로그인 페이지를 보여주고 싶을 때 사용할 수 있는 방법과 클라이언트가 없는 URL로 접근하는 것을 막기 위한 방법을 간단한 코드를 통해 알아보겠습니다.

 

초기 화면 설정

routes: [
    {
        path: '/',
        redirect: '/login'
    },
    {
        path: '/login',
        component: () => import('@/views/LoginPage')
    },
]

 

vue-router를 설정하는 코드입니다.

routes에서 루트 패스로 접근하면 redirect를 통해 '/login' URL로 이동하게끔 설정한 것을 확인할 수 있습니다.

 

이후에 쿠키나 세션을 이용해서 로그인한 정보가 있다면 루트 패스로 접근할 때 로그인 페이지로 리다이렉트하는 대신 메인 컨텐츠를 보여주게끔 설정하면 됩니다.

 

없는 URL 접근 막기

routes: [
        {
            path: '/',
            redirect: '/login'
        },
        {
            path: '/login',
            component: () => import('@/views/LoginPage')
        },
        {
            path: '*', // 모든 URL 접근을 캐치함
            component: () => import('@/views/NotFoundPage')
        }
    ]

 

애스터리스크(*)은 와일드카드로 모든 것을 뜻합니다.

SQL에서도 흔히 SELECT * FROM USER; 식으로 많이 사용되는 데 path에서 지정하게 되면 모든 URL에 대한 접근을 핸들링할 수 있습니다. 이 때 애스터리스크 path를 가장 상위에 두게 되면 모든 URL에 대한 접근을 캐치하므로 원하는 대로 작동을 하지 않을 수 있습니다.

때문에 애스터리스크는 라우터 중 최하단에 작성하여 미리 명시한 URL 이외의 접근을 처리하도록 작성하면 되겠습니다.

Comments