express-session 은 Express 프레임워크에서 세션을 관리하기 위해 필요한 미들웨어 입니다.
이번 강좌에서는 express-session을 통해 로그인 및 로그아웃을 구현해보도록 하겠습니다.
1. 사용예제
Express에 적용
var session = require('express-session');
app.use(session({
secret: '@#@$MYSIGN#@$#$',
resave: false,
saveUninitialized:true
}));
- secret: 쿠키를 임의로 변조하는 것을 방지하기 위한 값. 이 값을 통하여 세션을 암호화하여 저장합니다.
- resave: 세션을 언제나 저장할지(변경되지 않아도) 정하는 값입니다. 이 값을 false로 설정하는 것을 권장하고 필요에 따라 true 로 설정합니다.
- saveUninitialized: 세션이 저장되기 전에 uninitialized 상태로 미리 만들어서 저장합니다.
세션 초기 설정(initialization)
app.get('/', function(req, res){
session = req.session;
});
간단하게 이렇게 라우터 콜백함수 안에서 req.session으로 세션에 접근할 수 있습니다.
세션 변수 설정
app.get('/login', function(req, res){
sess=req.session;
sess.username="velopert"
});
따로 키를 추가해줄 필요 없이 sess.[키 이름]=값 으로 세션 변수를 설정 할 수 있습니다.
세션 변수 사용
app.get('/', function(req, res){
sess=req.session;
console.log(sess.username);
});
세션 제거
req.session.destroy(function(err){
//cannot access session here
}
2. 적용
다음은 로그인과 로그아웃 API를 main.js에 추가한 모습입니다.
메인페이지 수정
메인페이지에서 세션을 조회할 수 있도록 수정해줍니다. 우선 라우터 상단의 app.get('/'...)부분을 위와 같이 업데이트 하세요.
세션 변수를 EJS템플릿 엔진에 전달하게 했습니다.
views/index.ejs
views/header.ejs
views/body.ejs.
'Node.js공부 > 예제를 통한 Node.js 공부' 카테고리의 다른 글
Node.js 공부 7 - RESTful API (0) | 2019.02.05 |
---|---|
Node.js 공부 6 - EJS (0) | 2019.02.05 |
Node.js 공부 5 - express (0) | 2019.01.31 |
node.js 공부 4- Callback function (0) | 2019.01.31 |
Node.js 공부 3 - npm (0) | 2019.01.31 |