[node.js] Express 에서 세션 다루기

Express 에서 Session 이나 Cookie-Parser 들의 미들웨어가 독립된 모듈로 Express 에서 떨어져 나갔기에 일단 해당 모듈을 직접 npm 으로 설치해줘야한다.

 

[code]
npm install cookie-parser

npm install express-session
[/code]

var cookieParser = require('cookie-parser');
var session = require('express-session');

모듈을 불러와서 변수에 저장한 다음에 Express 에서 이 미들웨어를 사용하도록 Use 메서드를 호출한다.

app.use(cookieParser());
app.use(session({
  key: 'sid', // 세션키
  secret: 'secret', // 비밀키
  cookie: {
    maxAge: 24000 * 60 * 60 // 쿠키 유효기간 24시간
  }
}));

미들웨어를 사용해주고, 세션키와 비밀키, 쿠키 유효기간등을 설정해준다.

app.get('/session/create', function(req, res) { // 세션 생성
  req.session.user = 'l0gic';
  req.session.email = 'cdhnet98@gmail.com';
});

app.get('/session', function(req, res) { // 세션 보기
  res.send('user : ' + req.session.user + "<br>email : " + req.session.email);
});

app.get('/session/destroy', function(req, res) { // 세션 삭제
  req.session.destroy();
  res.clearCookie('sid');
});

실제로 사용시에는 이렇게 Request 객체의 session 을 사용하여 세션을 다룰 수 있다.