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
})
+) 참고
'STUDY > Node.js' 카테고리의 다른 글
Node.js | Passport.js (passport-facebook) (0) | 2020.01.18 |
---|---|
Node.js | Passport.js (passport-local) + MySQL (4) | 2020.01.10 |
Node.js | 쿠키(cookie) 알아보기 (쿠키를 이용한 ID저장하기) (1) | 2020.01.06 |
Node.js | Express generator 간단 구조 파악 + PM2사용 (0) | 2020.01.01 |
Node.js | MySQL 연동 (0) | 2019.12.31 |