본문 바로가기
매일코딩/Node.js

[node.js] 쿠키 & 세션 간단하게 정리

by 인생여희 2017. 5. 25.
반응형

-<쿠키>


-웹브라우저가 서버에 접속하면

 서버가 직접 쿠키(데이터)를 웹브라우저에 전달


-웹브라우저는 그 쿠키를 저장


-하지만 쿠키는 보안상 문제가 있음





-<세션>


--웹브라우저가 서버에 접속하면

  서버가 웹브라우저에 데이터 저장

  오직 사용자의 식별자인 id 값만 브라우저에 저장!

  식별자만 사용자의 컴퓨터에 저장하고 실제 데이터는 

  서버에 저장 



- 세션은 고유의 식별자를 이용해서 서버에 저장된 값을 가져온다.!



//<세션 사용 준비>

//express 에는 session  기능이 없다.

//이녀석이 기본적으로 세션정보를 메모리에 저장한다!

//그래서 웹브라우저를 종료하면 날라간다.

var session = require('express-session');


//<session 셋팅>

 app.use(session({

  secret: '1231adfdf',

  resave: false,

  saveUninitialized: true,

  store: new MySQLStore({

      

  })

}));



//세션을 지울때는 앞에 delete   

delete req.session.displayName;

 


//세션이 db에 저장이 끝났을때 콜백함수 function이 실행된다.!

   req.session.save(function(){

     res.redirect('/welcome');

  });

   


//데이터 베이스

   var user = {

     username:'abcnt',

     password:'1111',

     displayName:'kang'

   };

//로그인에 성공했을때 화면에 보여질 세션값 지정

req.session.displayName = user.displayName;



//로그인된 사용자라면 (세션값이 존재하면)

    if(req.session.displayName){ //있으면 true

//값은 {displayName:kang} 이라고 나온다




<세션 스토어> -- 메모리가 아닌 저장소에 세션을 저장하는 방법 


- 파일에다가 세션 데이터 저장하기

//파일을 세션 스토어로 지정

//var FileStore = require('session-file-store')(session);


//session 셋팅

app.use(session({

  secret: '1231adfdf',

  resave: false,

  saveUninitialized: true,

  store: new FileStore()

}));


//사용자가 접속하면 session 이라는 파일이 만들어지고

//그곳에는 사용자에 관한 session 정보가 들어있다.



-mysql에 세션 저장하기

var MySQLStore = require('express-mysql-session')(session);


// 세션 셋팅

app.use(session({

  secret: 'abcntwow',

  resave: false,

  saveUninitialized: true,

  store:new MySQLStore({

  

    host: '0.0.0.0',

    user: 'aaaaa',

    database: 'c9',

    password: ''


    

  })

 

}));

//실행시키면 세션 테이블이 생성되고 세션 정보들이 저장된다.


select * from sessions;



반응형

'매일코딩 > Node.js ' 카테고리의 다른 글

[node js] ajax 초 간단 예제  (1) 2017.06.05
[node.js] passport 로그인& 간편 로그인  (0) 2017.05.26
[node.js] express 모듈2  (4) 2017.03.13
[node.js] express 모듈 1  (4) 2017.03.12
[node.js] 외부모듈  (2) 2017.03.11

댓글