[express.js] cookie.session에서express.session변경하기

김민재·2024년 4월 21일

express.js

목록 보기
36/39

cookie-session / express-session 차이점

  • cookie-session: 클라이언트에서 세션을 보관한다.

    • 서버를 종료해도 클라이언트에 세션이 존재하기 때문에 로그아웃이 되지 않는다.
const cookieSession = require("cookie-session");

app.use(
  cookieSession({
    name: "cookie-session",
    keys: [process.env.cookieEncryptionKey],
  })
);

// register regenerate & save after the cookieSession middleware initialization
app.use(function (request, response, next) {
  if (request.session && !request.session.regenerate) {
    request.session.regenerate = (cb) => {
      cb();
    };
  }
  if (request.session && !request.session.save) {
    request.session.save = (cb) => {
      cb();
    };
  }
  next();
});
  • express-session: 데이터베이스에서 보관하며 클라이언트에서는 식별자만 보관한다.

    • 서버에서 세션을 관리하기 때문에 서버가 종료되면 세션이 날라간다.
    • Store 옵션을 이용해 외부 저장소에 넣어줄 수 있다.(mongo,redis 등)
app.use(expressSession({
  secret: [process.env.expressSessionKey], // key
  cookie: {
    httpOnly: true, // 자바스크립트로 조작 불가
    secure: false, // https를 사용할 때는 true http는 false
  },
  name: 'shop-app-cookie',
  resave: false, // 요청이 왔을 때 세션에 수정 사항이 생기지 않더라도 세션을 다시 저장할지 설정하는 옵션
  saveUninitialized: false, // 세션에 저장할 내용이 없더라고 처음부터 세션을 설정할지 결정하는 옵션
}))

  • express-session을 사용하면 서버 종료 시 세션이 날라간다.
profile
개발 경험치 쌓는 곳

0개의 댓글