-<쿠키>
-웹브라우저가 서버에 접속하면
서버가 직접 쿠키(데이터)를 웹브라우저에 전달
-웹브라우저는 그 쿠키를 저장
-하지만 쿠키는 보안상 문제가 있음
-<세션>
--웹브라우저가 서버에 접속하면
서버가 웹브라우저에 데이터 저장
오직 사용자의 식별자인 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 |
댓글