2016년 3월 27일 일요일

redis 로 nodejs session관리하기(passport 로 로그인 인증 관리 할 때)

1. redis 설치

On Mac
redis 서버 설치
brew install redis
redis 서버 실행
redis-server &
On ubuntu
sudo apt-get install redis-server

2. nodejs 서버 코드 수정: app.use(session({secret : 'session_secret_keys'})); 코드만 수정해주면 된다.
// required for passport
app.use(session({secret : 'session_secret_keys'}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());

==>

var redis = require('redis')
redisStore = require('connect-redis')(session)

var client = redis.createClient()
app.use(session({
    secret: 'session_secret_keys',
store: new redisStore({ host: 'localhost', port: 6379, client: client }),
saveUninitialized: false, // don't create session until something stored,
resave: false // don't save session if unmodified
}));

app.use(passport.initialize());
app.use(passport.session());
app.use(flash());


3. npm package install
redis, connect-redis 두 개의 패키지를 설치해 준다.
npm install redis connect-redis --save

4. 이제 nodejs서버를 실행하면 서버를 재시작해도 session이 유지됨을 확인할 수 있다.

참고:

https://codeforgeek.com/2015/07/using-redis-to-handle-session-in-node-js/