nodejs + express + redis를 이용한 세션관리하기
1. 모듈설치
1) nodejs 에서 redis를 사용하기위한 redis 모듈을 설치한다
- #npm install redis
2) express-session
- express에서 세션관리를 위해 필요하다
- #npm install express-session
3) connect-redis
- redis db에 접속하기 위한 모듈
- #npm install connect-redis
2. app.js
- redis 관련 세션을 설정한다
var redis = require(
"redis"
);
var session = require(
"express-session"
);
var redisStore = require(
"connect-redis"
)(session);
//redis session
var client = redis.createClient(
6379
,
'localhost'
);
app.use(session({
secret:
'seo'
,
//redis server config
store :
new
redisStore({
client:client,
ttl:
200
}),
saveUninitialized:
false
,
resave :
false
}));
3. routes/index.js
- router 설정
router.get(
'/sessioncheck'
, function(request, response){
if
(request.session.key){
console.log(
'ok session valid ('
+request.session.key+
')'
);
response.send(
'session valid(current login)'
);
}
else
{
console.log(
'not session is not valid ('
+ request.session.key+
')'
);
response.send(
'session is not valid(login please'
);
}
});
router.get(
'/sessionlogout'
, function(request, response){
request.session.destory(function(err){
if
(err){
console.log(err);
response.send(
'session is not destroy'
);
}
else
{
console.log(
'session destroy success...'
);
response.send(
'session is destroy'
);
}
});
});
router.post(
'/sessionlogin'
, function(request, response){
if
(request.session.key){
console.log(
'ok session valid ('
+request.session.key+
')'
);
response.send(
'session valid(current login)'
);
}
else
{
request.session.key = request.body.id;
console.log(
'session save success ('
+ request.session.key+
')'
);
response.send(
'session save success'
);
}
});
4. 테스트
1) redis의 값을 체크한다
- 127.0.0.1:6379> keys *
(empty list or set)
2) postman을 이용하여 sessioncheck, sessionlogin, sessioinlogout 을 보낸다
'Front-End > nodeJs' 카테고리의 다른 글
[nodeJs] 아마존(ec2)에 노드 express 프레임워크 설치하기 (0) | 2018.06.28 |
---|---|
[nodeJs] aws(ec2)에 노드 설치하기 (0) | 2018.06.27 |