Express 4 에서는 3에서와는 다르게 session을 사용함
로그인시 세션에 사용자 정보를 설정하여 다시 로그인 호출시 로그인 성공 화면으로 넘어가도록 구현한 샘플
1. 설치
sudo npm install express-session
2. 사용
- app.js
var express = require('express');
var session = require('express-session');
var routes = require('./routes/index');
var users = require('./routes/users');
var member = require('./routes/member');
var personal = require('./routes/personal');
var office = require('./routes/office');
var app = express();
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
}));
app.use('/', routes);
app.use('/users', users);
app.use('/member', member);
app.use('/personal', personal);
app.use('/office', office);
|
- member.js
var CONSTS = require('./consts');
var express = require('express');
var router = express.Router();
var MemberProvider = require('./db/db-member.js').MemberProvider;
var app = express();
var memberProvider = new MemberProvider();
// 로그인 화면 호출
router.get('/loginc', function(req, res, next) {
// 이미 로그인 여부를 세션에 user_id가 있는지로 확인
var userInfo = req.session.userInfo;
var user_id = '';
try {
user_id = userInfo.user_id;
} catch (e) { }
console.log('member - session : ' + userInfo);
if (user_id == '') {
res.render('./member/login', {
title: '로그인',
logintype: CONSTS.MEMBER_TYPE.OFFICE});
} else {
res.redirect('/home' + userInfo.mem_type);
}
});
// 로그인 실행
router.post('/login', function(req, res, next) {
console.log(req.body);
var vId = req.body.user_id;
var vPwd = req.body.password;
var datas = [vId, req.body.mem_type];
memberProvider.selectSingleQueryByID("selectInfo", datas, function(err, memberInfo) {
console.log(memberInfo);
var rtnDatas = CONSTS.getErrData('0000');
if (memberInfo == null) {
rtnDatas = CONSTS.getErrData('E001');
} else if (memberInfo.user_password != vPwd) {
rtnDatas = CONSTS.getErrData('E002');
} else {
// 세션에 값을 설정함.
var userInfo = {
user_id: memberInfo.user_id,
mem_type: memberInfo.mem_type};
req.session.userInfo = userInfo;
}
console.log(rtnDatas);
res.send(rtnDatas);
});
});
// 로그아웃
router.get('/logout', function(req, res, next) {
// 세션을 삭제함.
req.session.destroy(function(err) {
res.redirect('/');
});
});
|
이 글은 Evernote에서 작성되었습니다. Evernote는 하나의 업무 공간입니다. Evernote를 다운로드하세요. |
댓글 없음:
댓글 쓰기