728x90

 

Session

  • 세션데이터는 쿠키 안에 저장되지 않고 세션ID만 저장하고, 세션데이터는 서버사이드에 저장된다.
  • 서버쪽의 기본 세션 공강인 MemoryStore는 제품 환경을 위해 안만들어 졌고 대부분의 조건에서 메모리 부족 현상이 있을 것 이므로 싱글프로세스를 커버하지 못한다. 그래서 디버깅이나 개발요인 의미이다. 저장공간을 할 때 redis 같은 저장공간이 따로 필요하다

 

Express-session

요청마다 개인의 저장 공간을 만들어준다.

 

밑은 기본 설정 값이다.

 { 

     path: ‘/’, 

     httpOnly: true, 

     secure: false, 

     maxAge: null 

}

 

app.use(session());을 하면 “req.session”이 생긴다. 특별히 아이디같은 것을 정해 줄 필요없이 그 사용자에 대한 고유한 세션이 된다. 그래서 예를 들어 req.session.id = ‘hello’ 를 하면 모든 사용자의 아이디가 다 hello가 되는것이 아니라 그 사용자에 대한 아이디가 hello가 되는 것이다. 

 

 

세션 쿠키 설정

 

session에는 다양한 옵션들이 있다.

 

  • Resave: 요청이 왔을 때 세션에 수정사항이 생기지 않아도 다시 저장할지 여부
  • saveUninitialized: 세션에 저장할 내역이 없더라도 세션을 저장할지
  • Secret: 쿠키 암호화.
  • Cookie: session 일때는 항상 session-cookie를 쓴다. 그 session-cookie에 대한 설정을 여기다가 하는 것이다.
  • httpOnly: 이것은 항상 true로 해 둬야 javascript로 부터 공격받지 않는다.
  • secure: 만약 secure가 설정되면, 당신이 http로 사이트를 접근할 때, 쿠키는 설정되지 않는다. 만약 당신이 proxy뒤에 nodejs를 돌리고 있고, secure: true 라면 express 안에 'trust proxy'를 설정해야한다.
  • Name: 기본적으로 default 값으로 “connect.sid”로 되어있는데 바꿔도 무방하다.[1]

req.session.name = '~~~';  // 세션 등록

req.sessionID;  // 세션 아이디 확인

req.session.destroy();  // 세션 모두 제거

'프레임워크 > Node.js' 카테고리의 다른 글

알아둬야 할 HTTP 응답 헤더  (0) 2021.06.25

+ Recent posts