STUDY/Node.js
Node.js | Session 알아보기(express-session)
개미606
2020. 1. 8. 21:16
1. 설치
express-session이라는 미들웨어를 설치해줍니다.
express-session은 Node.js의 프레임워크인 Express를 사용할 때 세션을 관리할 수 있도록 하는 미들웨어임
$ npm install express-session
2. 사용준비
- sercret: 반드시 필요한 옵션으로 세션을 암호화하여 저장함
- resave: 세션이 변경되지 않아도 계속 저장됨(덮어쓰기) 기본 값은 true이지만 false로 사용할 것을 권장하고있음
- saveUninitialized: 세션을 초기값이 지정되지 않은 상태에서도 미리 만들어 저장함
세 옵션은 기본적으로 요구되는 옵션으로, 특별한 경우가 아니라면 기본적으로 세 옵션을 모두 사용하면 된다.
var session = require('express-session');
var app = express();
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}));
이제 request를 통해 세션에 접근이 가능!
3. 세션 사용해보기
req.session을 통해 세션에 접근할 수 있으며, 생성도 가능합니다.
//세션 생성
req.session.세션명 = 세션value;
user_id라는 세션명의 세션을 생성하며 로그인할 때 사용한 ID값을 세션에 저장했습니다.
router.post('/loginAf', function (req, res, next) {
console.log("id : " + req.body.id);
console.log("pwd : " + req.body.pwd);
//console.log("아이디 저장? : " + req.body.rememberId);
if(req.body.rememberId === "checked"){
console.log("아이디 저장 체크!");
// cookie생성
// res.cookie('cookie 이름', 'cookie 내용');
res.cookie('rememberId', req.body.id);
// cookie 읽기
//console.log(req.cookies);
}
console.log(req.session);
req.session.user_id = req.body.id;
console.log(req.session.user_id);
res.render('home', {"user_id" : req.session.user_id});
});
+) 세션 삭제
req.session.destroy(function(err) {
// cannot access session here
})
+) 세션 저장
req.session.save(function(err) {
// session saved
})
+) 참고