express-session 모듈은 Express Framework에서 세션을 관리하기 위한 미들웨어이다. express-session 모듈을 통해, 로그인 API 를 제작 예제를 작성해 보자.
Express 에 express-session 적용
server.js
var session = require('express-session');
app.use(session({
secret: '@#@$MYSIGN#@$#$',
resave: false,
saveUninitialized: true
}));
세션 초기 설정(Initialization)
main.js
app.get('/', function(req, res){
sess = req.session;
});
request 객체에는 Client의 세션 키 정보가 필드로 포함되어 있다. req.session 필드를 라우터 콜백 메소드 내의 객체에 대입하는 것으로, 세션의 초기 설정을 마치고 세션에 접근할 수 있게 된다.
세션 변수 설정
main.js
app.get('/login', function(req, res){
sess = req.session;
sess.username = "velopert"
});
sess.[key] = [value]; 으로 세션 변수를 간단하게 설정할 수 있다.
세션 변수 사용
main.js
app.get('/', function(req, res){
sess = req.session;
console.log(sess.username);
});
세션 변수의 접근 역시 sess.[key] 로 간단히 가능하다.
세션 제거
main.js
req.session.destroy(function(err){
// cannot access session here
});
req.session.destroy() 메소드의 가장 큰 특징은 메소드 실행과 동시에 세션이 소멸되기 때문에, 메소드 내에서는 세션에 대한 접근이 불가능 하다는 것이다.