'코딩 문제(JavaScript)' 카테고리의 다른 글

240801~16 푼 문제  (0) 2024.08.17
240729~31 푼 문제  (0) 2024.07.31
240716~18 푼 문제  (0) 2024.07.16
240708~09 푼 문제  (0) 2024.07.09
240423~30 푼 문제  (0) 2024.04.23

 

 

 

 

 

레이아웃 설치

 

 

 

 

애플리케이션에 가서 레이아웃을 사용하겠다고 선언하고, 템플릿 엔진을 ejs로, views 파일 경로를 사용할 것

 

 

 

 

 

 

 

main.ejs 가 레이아웃이다. 저기 <%- body %> 부분이 바뀌는 부분이다. 

 

 

 

 

 

 

 

라우트파일에서 다음과같이 코드를 작성하면, 서버를 돌린 결과 해당 주소를 달리하면 레이아웃은 똑같고 body 부분의 태그만 변경되는 것을 확인할 수 있다.

 

 

 

 

 

 

"/" 주소와 "/home" 주소 공동으로 body 내용을 받길 원하면 다음과 같이 설정해 줄 수 있다.

 

 

 

 

 

보낼 이름이랑 변수 이름이 같다면 생략도 가능...

 

타이틀 태그를 변경하고 싶으면 해당 타이틀 변수를 만들고 변수를 ejs 파일로 보내면 된다.

 

 

 

 

 

 

 

그럼 주소에 따라 타이틀도 변경되는 것을 확인할 수 있다.

cookie-parser와 jsonwebtoken 을 설치한다.

 

 

 

 

JWT_SECRET 비밀키 환경변수를 설정하고, 그것을 컨트롤러에 가져온다.

 

 

 

 

로그인하는 컨트롤러에 가서 로그인을 할 경우 일치하는 유저가 맞는지, 비밀번호도 맞는지 확인하는 코드를 작성하고 그 후 토큰을 만든다. 그리고 만든 토큰을 쿠키에 저장하도록 한다.

 

 

 

 

 

 

로그인을 하고 난 후, 개발자 도구에서 쿠키를 확인하면 토큰이 저장되어 있는 걸 확인할 수 있다. 마침표로 세 부분이 나뉘어져있는데, 앞에서부터 알고리즘 헤더, 페이로드, 비밀키 이다. 사용자를 인증한 다음에 서버에서 토큰을 만들어주고, 그 토큰을 클라이언트에 보내서 쿠키로 저장한다.

 

 

 

 

 

로그아웃 하는 법, 그냥 clearCookie()를 이용하여 해당 토큰을 지우면 된다.

 

 

 

 

 

로그인 여부 확인 함수를 다음과 같이 만들고, 적용하고 싶은 라우터 부분에 추가하면 적용된다. 해당 주소로 갔을 경우 로그인 되어 있지 않다면 로그인 주소로 리다이렉트 된다.

+ Recent posts