본문 바로가기
Elice SW 2/TIL

DAY 34 -TIL(2)

by 자이구 2022. 5. 21.

Session Store

Session

  • 웹 서버가 클라이언트의 정보를 클라이언트별로 구분하여 서버에 저장
  • 클라이언트 요청 시 Session ID를 사용하여 클라이언트의 정보를 다시 확인하는 기술
  • 클라이언트가 정보를 저장하고, 요청시 정보를 보내는 Cookie와 대조적
  • 서버는 세션을 생성하여 세션의 구분자인 Session ID를 클라이언트에 전달
  • 클라이언트는 요청 시 session id를 함께 요청에 담아서 전송
  • 서버는 전달받은 session id로 해당하는 세션을 찾아 클라이언트 정보를 확인

Session Store

  • express-session 패키지를 사용하여 간한하게 session 동작을 구현
  • 자동으로 session id를 클라이언트에 전달, session id로 클라이언트 정보 확인
  • express-session 패키지는 session을 기본적으로 메모리에 저장
  • 현재 구현된 어플리케이션을 종료 후 다시 실행하면, 모든 유저의 로그인이 해제
  • 서버가 여러 대가 있을 경우 서버 간 세션 정보 공유할 수 없음
  • connect-mongo 패키지는 express-session 패키지의 옵션으로 전달 가능, session store로 사용가능
  • 자동으로 session 값이 변경될 때 update되고, session이 호출될 때 find함

 

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을 설정 세션데이터를 몽고디비에 저장하고 관리하는 기능을 자동으로 수행

'Elice SW 2 > TIL' 카테고리의 다른 글

DAY 34 - TIL(1)  (0) 2022.05.21
DAY 32 - TIL  (0) 2022.05.20
DAY 31 - TIL  (0) 2022.05.19
DAY 30 - TIL  (0) 2022.05.16
DAY 29 - TIL  (0) 2022.05.15

댓글