혹시나 브라우저에서 로그인한 사람이 로그아웃을 시도할 수도 있다.
혹은 로그인한 사람이 회원가입을 시도할 수 있다.
이럴 때, 로그인 했을 경우는 위와같은 시도를 하지 못하도록 미들웨어로 설정할 수 있다.
routes 폴더에 middlewares.js 파일을 만든다.
아래와 같이 커스텀 미들웨어를 생성한다.
isAuthenticated는 HTTP Header에 있는 속성으로, req안에 있다.
(req는 프론트에서 보낸 요청으로 HTTP가 포함되어있다.)
isLoggedIn // 로그인 되어있을 경우 다음 미들웨어로 넘어가고,
로그인이 안되어있으면 401 에러로 처리한다.
isNotLoggedIn // 로그인이 되어있지 않을 경우 다음미들웨어로 넘어가고,
로그인이 되어있으면 401에러로 처리한다.
미들웨어는 다음과 같이 적용한다.
router.post(주소, 커스텀미들웨어, 응답미들웨어);
라우터이후 응답을 처리하기 전에 위치한다.
익스프레스에서 넥스트사용방법은 두가지.
next(); // 넥스트 매개변수 없음 : 다음 미들웨어로 넘어간다.
next(...); // 넥스트 매개변수 존재: 에러처리미들웨어로 간다.
에러처리미들웨어는 따로 설정해주지 않아도, 기본적으로 라우트의 제일 마지막 직전에 위치해 있다.
하지만 에러처리를 직접 하고 싶다면 다음과 같이 지정할 수 있다. (따로 지정하지 않아도 저 위치에 있음)
에러를 특별하게 처리하고 싶을때 에러처리미들웨어를 직접 설정한다.
예를 듬련 에러처리 페이지를 따로 띄우고 싶다거나, 에러 페이지에 어떤 정보는 빼고 싶다든가 할때 사용한다.
Express :: 클라이언트사이드에서 로그인이 정보 매번 불러오기 (0) | 2021.01.01 |
---|---|
Express :: 서버에서 동적 라우팅, 파라미터 설정 (덧글 쓰기 설정하기) (0) | 2021.01.01 |
Express :: passport, 쿠키랑 세션 설정하기 (feat.로그인) (0) | 2020.12.26 |
Express :: passport _ 서버랑 DB 연결하여 로그인하기 (0) | 2020.12.25 |
Express :: cors_서버에서 CORS 에러 해결하기 (0) | 2020.12.25 |
댓글 영역