쿠키(Cookie)란, 클라이언트 측(브라우저)에서 관리되는
작은 기록 정보 파일을 의미합니다.
쿠키에는 사용자 인증이 유효한 시간을 명시할 수 있으며,
한 번 유효 시간이 정해지면 브라우저를 끄더라도 인증이 유지된다는 특징이 있습니다.
쿠키는 클라이언트인 Local 에서 저장되기 때문에, 누구나 쿠키의 값을 확인할 수 있어
값을 위변조하기 쉽다는 단점이 있습니다.
그러나 세션(Session)은 쿠키와 다르게 서버에 저장되기 때문에,
서버에 데이터를 저장하고 Web Broswer는 세션의 ID만 가지고 있습니다.
세션의 ID는 sid 라고 하는 식별자 입니다.
위의 특성 때문에 세션은 클라이언트 측에서 쉽게 위변조할 수 없습니다.
npm install -s express-session
const session = require('express-session');
const app = express();
app.use(session({
secret: 'secretWords',
resave: false,
saveUninitialized: true
}));
위 과정을 거치면 Request 에서 Session을 사용할 수 있습니다.
router.get("/administrator", function (req, res, next) {
if(req && req.session && req.session.count) {
// 세션이 존재하는 경우
req.session.count = req.session.count + 1;
} else {
// 세션이 존재하지 않는 경우
req.session.count = 1;
}
console.log(req.session.count);
});
위 코드로 실행해보면 새로고침 할 때 마다 Console에 찍히는 값이
계속 증가하는 것을 알 수 있습니다.
세션이 존재하는지의 여부는
if(req && req.session && req.session.count) { ... }
위 코드로 작성하면 됩니다.
req.session.destroy(function(err) {
// 삭제 후 실행할 작업 기술
})
req.session.save(function(err) {
// 저장 후 실행할 작업 기술
})