세션은 웹에서 유지되는 정보인데 이걸 통해 유저들의 로그인 관리를 위해 주로 사용된다
express-session 모듈을 사용하여 세션 미들웨어를 만들게 되면 이제 페이지를 이동할 때마다 쿠키에 세션이 담겨져 있는걸 관리자 도구에서 확인할 수 있다.
간단하게 미들웨어를 만들어 req 내부를 볼수 있는데 중간에 세션이나 세션id도 보이고 하단에 cookie도 볼수있다.
초기에는 resave와 saveUninitialized를 true로 주고 모든 사용자의 세션을 생성했지만 그렇게 되면 부하가 발생할 수 있으므로 로그인한 유저만 세션이 생성될 수 있도록 false로 바꾸고 postLogin에서 아이디와 비번체크가 되고나면 세션 객체에 프로퍼티를 추가하여 객체가 변경되면 세션이 생성되록 했다.
하지만 이렇게하면 세션이 내 피시의 메모리에 저장되므로 효율적인 관리를 위해 connect-mongo 패키지의 mongostore를 사용하여 세션을 db에 저장한다.
url은 db.js를 만들때 사용한걸 복사해서 쓰면되고 이렇게되면 이제 세션이 생성되면 db에 sessions가 생기면서 자동적으로 로그인한 유저의 정보가 세션에 함께 담긴다.
또한 세션 객체에 추가한 프로퍼티들을 res.locals 객체에 추가하게 되면 템플릿이나 미들웨어 어디에서든 사용할 수 있다.
우린 로그인할때 로그인여부와 유저정보를 세션객체에 담았고 새로 만든 로컬스미들웨어에서 로컬스객체에 담았으므로 pug에 바로 사용이 가능하다.
이제 몇가지 민감한 정보들을 따로 관리하게 위해 dotenv를 설치하고 이놈은 그 누구보다도 젤 위에 있어야 한다.
우린 서버를 init.js에서 가동하므로 이 파일 제일위로 해야함
'개발 > Project' 카테고리의 다른 글
카카오 소셜 로그인 및 유저 프로필 변경 (0) | 2024.12.02 |
---|---|
소셜 로그인은 역시 짜증 (0) | 2024.12.01 |
회원가입 로그인 (0) | 2024.11.29 |
Deployment (0) | 2024.11.27 |
콘티 (0) | 2024.11.11 |