본문 바로가기

STUDY/Node.js

Node.js | Session 알아보기(express-session)

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
})

 

 

+) 참고

 

Express session middleware

express-session Installation This is a Node.js module available through the npm registry. Installation is done using the npm install command: $ npm install express-session API var session = require('express-session') session(options) Create a session middl

expressjs.com

 

express-session

Simple session middleware for Express

www.npmjs.com

 

[Node.JS] 강좌 10-3편: Express 프레임워크 응용하기 – express-session 편 | VELOPERT.LOG

이 강좌는 강좌 10-2 편과 이어지는 강좌입니다. 강좌를 작성하다가 글이 너무 길어져서 3편으로 나누어 작성한 점 유의해주세요 🙂 10-1: EJS 10-2: RESTful API 10-3: express-session express-session express-session 은 Express 프레임워크에서 세션을 관리하기 위해 필요한 미들웨어 입니다. 이번 강좌에서는 express-session 을 통해 로그인 및 로그아웃을 구현해보도록 해보겠습니다.

velopert.com