세션과 인증

김민석·2026년 3월 10일

쿠키를 사용자를 식별하는 용도로 사용. 유저의 정보는 DB를 통해 저장함.

express-session

var session = require('express-session');
app.use(session({
	secret:'keyboard car',
    resave:false,
  	saveUninitialized:true
	
}))

secret은 필수 속성 또한 노출되면 안됨.
resave는 false로 두는게 좋음 resave를 true로 두면 값이 바뀌지 않아도 계속 새로 저장함.
saveUninitialized:true이면 세션이 필요하기 전까지 세션을 구동시키지 않음. true 추천

session-store

npm i session-file-store

var fileStore = require("session-file-store")(session)

app.use(session({
	secret:'keyboard car',
    resave:false,
  	saveUninitialized:true,
	store:new fileStore()
}))

filestore는 express-session의 세션 데이터를 서버 메모리가 아니라 파일에 저장하는 store로, 같은 session id를 가진 요청이 들어오면 이전 세션 데이터를 파일에서 읽어와 사용할 수 있습니다.

로그아웃

request.session.destroy(function(err)) {
     // 로그아웃 후  로직             
}

destroy를 통해 session이 저장된 것을 삭제시킴.

세션 저장

req.session.save(() => {
  res.redirect('/mypage');
});

express-session에서는 req.session 값을 변경하면 response가 끝날 때 자동으로 세션이 저장된다. req.session.save()는 redirect 등 특정 상황에서 세션을 명시적으로 저장할 때 사용한다.

profile
나만의 기록장

0개의 댓글