Fall in IT.

Node.js에서 쿠키하는 사용방법 본문

프로그래밍언어/Node.js

Node.js에서 쿠키하는 사용방법

D.Y 2016. 4. 26. 11:36

안녕하세요. 오늘은 Node.js에서 쿠키 사용하는 방법을 알아보겠습니다.


쿠키는 세션을 사용하기 위한 기반 기술이고, 세션은 인증을 사용하기 위한 기반 기술입니다. 따라서, 쿠키의 개념부터 제대로 잡는게 


무엇보다 중요합니다. 쿠키나 세션, 인증에 대한 개념이 없으신 분들은 책 또는 인터넷 자료를 통해 정확히 잡으시길 바랍니다. ^^(사실 저도 잘 모른다는..)



목적

  • 쿠키를 사용하여 클라이언트와 서버간의 데이터를 주고 받는것을 확인한다.


요구사항

  • 쿠키가 최초에 없을 때는 서버에서 쿠키값으로 1을 보내고, 쿠키가 있을 시 1을 증가시켜 반환한다.
    (따라서, 클라이언트에서 쿠키를 삭제하기 전까지는 1씩 증가된 값을 가지고 있게 된다.)


구축환경

  • 웹프레임워크로는 express를 사용하고, express는 쿠키 기능을 가지고 있지 않으므로, 미들웨어(cookie-parser)를 사용한다.


구축방법

  • 패키지에 기본적으로 express와 cookie-parser를 설치한다.
    - $ npm install express --save
    - $ npm install cookie-parser --save
  • 사용방법은 아래 사이트를 참조한다.
    https://www.npmjs.com/package/express
    https://www.npmjs.com/package/cookie-parser
  • express를 사용하여 웹서버를 띄웁니다. (예제에서는 3000번 포트를 사용합니다.)
    - app.listen(3000);
  • 쿠키를 주고받을 라우터를 추가합니다.
  • request에 쿠키가 없을 경우에는 1을 response하고, 있을 경우 1을 더해서 response한다.
  • 크롬 개발자 도구를 사용하여 확인합니다.

소스코드

var express = require('express');
var app = express();
var cookie = require('cookie-parser');

app.use(cookie('!@#%%@#@')); //cookie 암호화. 암호화된 쿠키를 서버로 보냄.

app.listen(3000, function(){
  console.log('Connected 3000 port');
});

app.get('/cookie', function(req, res){

  var cookie_count = parseInt(req.signedCookies.count);

  if(cookie_count){
    // request에 cookie 내용이 있을 경우
    cookie_count++;
  }
  else{
    // request에 cookie 내용이 없을 경우
    cookie_count = 1;
  }

  res.cookie('cookie', cookie_count, {signed:true});
  res.send('cookie : ' + cookie_count);
});


실행화면


<Request Headers와 Response Headers에 Cookie 값이 있고, 서버에서 받은 쿠키값을 화면에 뿌림>



<Cookie 값이 1증가 되는것을 확인>



<쿠키를 삭제>


<쿠키 삭제후 재실행시, Request에 쿠키값이 없음을 확인할 수 있고, 서버는 쿠키 값으로 1 반환>




모두 즐거운 코딩하세요~





Comments