Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JavaScript
- pinia
- VueDevTools
- WebTestClient
- 한빛미디어
- Vue
- Java
- 알고리즘
- 도메인 주도 개발 시작하기
- 이벤트루프
- 네트워크
- 이것이자바다
- 1436
- 헤드퍼스트 디자인패턴
- MySQL
- 자바스크립트
- HTTP
- 구글 엔지니어는 이렇게 일한다
- 이것이안드로이드다
- GitHub
- 스프링
- vue-router
- Junit5
- 백준
- Git
- 2817
- 혼공컴운
- 러닝GO
- cicd
- AWS 비용 최적화 바이블
Archives
- Today
- Total
이시안 개발 블로그
vue-router 초기 화면 설정과 없는 URL 접근 막기 본문
웹 페이지로 접근 시 초기화면으로 메인 페이지 대신 로그인 페이지를 보여주고 싶을 때 사용할 수 있는 방법과 클라이언트가 없는 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