2023-08-30 19:33:34

Express-session이란?

Express에서 세션 관리를 도와주는 미들웨어로 서버 측에서 사용자에 대한 데이터를 저장하고 클라이언트에는 유니크한 식별자만 전달하는 방식으로 작동합니다.

이 식별자는 쿠키를 통해 전달되며 이를 통해 사용자가 다시 방문할 떄마다 해당 사용자의 데이터에 접근 할 수 있게 됩니다.

 

Express-session 주요 특징

  • 세션 저장소 : 기본적으로 express-session은 메모리에 세션을 저장합니다. 실제 프로덕션 환경에서는 영구 저장소에 사용하는 권장 합니다. 
  • 세션 ID : 각 세션은 고유한 ID를 가지며 이 ID는 클라이언트의 쿠키에 저장됩니다.
  • 세션 만료 : 세션 만료 시간이 존재하며 설정에 따라 세션은 일정 시간 후에 만료됩니다.
  • 쿠키 설정 : express-session은 쿠키 설정을 포함하여 secure, httpOnly, maxAge 등의 옵션을 제공합니다. 

Express-session 기본 예제

  • app.js에 session 정보 추가 
const express = require('express');
const session = require('express-session');
const env = require("dotenv").config();

const app = express();

app.use(
  session({
  	// 클라이언트에 전송되는 세션 ID 쿠키의 이름. 기본값 -> connect.sid
  	name : "test"
    // 세션 ID를 서명하는데 사용되는 비밀 키로 비밀유지 필수
    secret: process.env.SECRET_KEY,
    // 요청이 오면 세션에 어떤 변경 사항이 없더라도 세션을 다시 저장할지 여부를 지정 (false 권장)
    resave: false,             
    // 초기화되지 않은 세션을 저장소에 저장할지 여부를 지정
    saveUninitialized: false
  }
));

app.listen(process.env.PORT, ()=>{
  console.log(`Server On UsePORT : ${process.env.PORT}`);
});

 

728x90