[Node.js] Session Store 사용하기
글 작성자: 망고좋아
반응형
🎯 Session Store
📝 Session이란?
- 웹 서버가 클라이언트의 정보를 클라이언트 별로 구분하여 서버에 저장하고 클라이언트 요청 시 Session ID를 사용하여 클라이언트의 정보를 다시 확인하는 기술
- 클라이언트가 정보를 저장하고, 요청 시 정보를 보내는 Cookie와 대조된다.
📝 Session 작동 방식
- 서버는 세션을 생성하여 세션의 구분자인 Session ID를 클라이언트에 전달
- 클라이언트는 요청 시 session id를 함께 요청에 담아서 서버에 전송
- 서버는 전달받은 session id로 해당하는 세션을 찾아 클라이언트 정보를 확인
📝 Express.js의 session
- express-session 패키지를 사용하여 간단하게 session 동작을 구현할 수 있다.
- 특별한 설정 없이 자동으로 session 동작을 구현 ⇒ 자동으로 session id를 클라이언트에 전달, session id로 클라이언트 정보 확인
📝 Session과 Session Store
- express-session 패키지는 session을 기본적으로 메모리에 저장함
- 따라서 현재 구현된 애플리케이션을 종료 후 다시 실행하면, 모든 유저의 로그인이 해제된다.
- 혹은 서버가 여러 대가 있을 경우, 서버 간 세션 정보 공유할 수 없다. ⇒ 세션의 문제점
📝 MongoDB를 Session Store로 사용하기
- connect-mongo 패키지를 이용하면 MongoDB 를 session store로 사용할 수 있다.
- connect-mongo 패키지는 express-session 패키지의 옵션으로 전달 가능
- 자동으로 session 값이 변경될 때 update 되고, session이 호출될 때 find 한다.
📝 connect-mongo
const MongoStore = require("connect-mongo");
app.use(
session({
secret: "SeCrEt",
resave: false,
saveUninitialized: true,
store: MongoStore.create({
mongoUrl: "mongoUrl",
}),
})
);
- connect-mongo 패키지를 사용해 express-session 설정 시 store 옵션에 전달하고, mongoUrl를 설정해주면 된다.
- 세션 데이터를 몽고 디비를 통해 저장하고 관리하는 기능을 자동으로 수행해 준다.
반응형
'프로그래밍 > Node.js' 카테고리의 다른 글
[Node.js] CSR로 댓글 기능 구현하기 (0) | 2021.12.13 |
---|---|
[Node.js] 회원과 게시글의 연동 (0) | 2021.12.13 |
[Node.js] Passport.js와 로그인 (0) | 2021.12.13 |
[Node.js] 회원가입 구현하기 (0) | 2021.12.13 |
[Node.js] 게시판 페이지네이션 구현하기, Pagination (0) | 2021.12.09 |
댓글
이 글 공유하기
다른 글
-
[Node.js] CSR로 댓글 기능 구현하기
[Node.js] CSR로 댓글 기능 구현하기
2021.12.13 -
[Node.js] 회원과 게시글의 연동
[Node.js] 회원과 게시글의 연동
2021.12.13 -
[Node.js] Passport.js와 로그인
[Node.js] Passport.js와 로그인
2021.12.13 -
[Node.js] 회원가입 구현하기
[Node.js] 회원가입 구현하기
2021.12.13