본문 바로가기
Vue.js

Vue - 네비게이션 가드

by 지민재 2023. 1. 13.
반응형
SMALL

네비게이션 가드란?

네비게이션 가드(navigation guard)란 뷰 라우터로 특정 URL에 접근할 때 해당 URL의 접근을 막는 방법

사용자의 인증 정보가 없으면 특정 페이지에 접근하지 못하게 할 때 사용하는 기술입니다.

 

설치

npm install vuex --save

 

main.js 에 추가 

import store from './store'
createApp(App)
  .use(store)
  .use(router)
  .use(ElementPlus)
  .use(VueMoment)
  .mount('#app')

위 코드 추가하기

 

 

router / index.js 에 아래코드 추가

 

{
    path: '/send/sendListBoard',
    name: 'sendListBoard',

    component: () =>
      import(
        /* webpackChunkName: "databinding", webpackPrefetch:true */ '../views/send/sendListBoard.vue'
      ),
    beforeEnter: (to, from, next) => {
      console.log(to)
      console.log(from)
      if (!localStorage.getItem('memId')) return next('errorBlockView')
      next()
    }
  },
 
 
beforeEach() 인자 
 
  • to : 이동할 url 정보가 담긴 라우터 객체
  • from : 현재 url 정보가 담긴 라우터 객체
  • next : to에서 지정한 url로 이동하기 위해 꼭 호출해야 하는 함수

 

if문으로 localStorage.getItem을 통해 memId 값을 확인 만약 로그인한 'memId' 가 있지 않으면 접근할 수 없는 페이지 창 출력 localStorage 란? 

 

 

해당 페이지에 로그인 없이 접속하면 아래같은 화면이 출력된다. 다른 페이지도 로그인 하지않은 회원이 접속 시도를 하면 이와 같은 방식으로 처리하면 된다.

 

 

 

 

 

 

 

 

'Vue.js' 카테고리의 다른 글

Vue.js - router-view(특정 Component 만 출력)  (0) 2023.02.24
Vue.js 3 - Proxy 설정  (0) 2023.02.21
Vue3.js - 로컬스토리지 사용(localStorage)  (0) 2023.01.13
Vue3.js - 회원가입 유효성 검사  (0) 2023.01.13
Vue3.js #1  (0) 2023.01.04

댓글