프로그래밍/Node.js

Node.js 생활코딩 정리 – 세션(session)을 데이터베이스(mysql)에 저장하기

가카리 2016. 12. 3. 23:38
반응형

Session 9 : Session store - mysql

 

세션을 mysql에 저장하기 위해서는 express-mysql-session을 설치해야 한다.

 

npm install express-mysql-session –save

 

다음 예제는 app_session_login.js를 복사해서 쓴다.

 

app_session_login_mysql.js

 

var express = require('express');

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

var bodyParser = require('body-parser');//POST 방식 전송을 위해서 필요함

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

var app = express();

app.use(bodyParser.urlencoded({extended: false}));//미들웨어 등록부분

//resave 세션아이디를 접속할때마다 발급하지 않는다

app.use(session({

secret: '12312dajfj23rj2po4$#%@#',

resave: false,

saveUninitialized: true,

store:new MySQLStore({

host: 'localhost',

port: 3307,

user: 'root',

password: 'qwer1234',

database: 'o2'

})

}));

 

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

delete req.session.displayName;//세션 삭제

req.session.save(function(){//데이터 저장이 끝났을때 호출됨 안전하게 redirect하기 위함

res.redirect('/welcome');

});

});

 

 

원래 mysql 테이블

 

실행 후 sessions 테이블이 추가됨

sessions 테이블 모양

 

그 다음 웹사이트 접속을 한다.

다시 들어가보면 이러한 세션 값이 추가된다.

 

그리고 logout 버튼을 누르면 displayName 값이 사라지는 것을 볼 수 있다.

 

 

출처 : https://opentutorials.org/course/2136

 

반응형