Do it Node.js express를 이용하여 서버 만들기 6편 쿠키와 세션 이용하기
2018. 3. 27. 16:30ㆍjavascript/node.js
쿠키와 세션이용 하기
호스트는 클라이언트가 로그인 상태인지 확인 하기 위해서 세션과 쿠키를 사용합니다. 쿠키는 일반적으로 클라이언트 부분에 저장되고 세션은 서버에 저장되서 세션이 좀 더 보안적으로 좋다고 볼 수 있다. 우선은 쿠키를 사용해보겠다.
cookie-parser 다운로드
cookie-parser는 미들웨어이기 때문에 app.use에 등록하여 사용해야한다.
var http = require('http'), express = require('express'), static = require('serve-static'), bodyParser = require('body-parser'),path = require('path'); var cookieParser = require('cookie-parser'); var app = express(); var router = express.Router(); app.set('port',3000 ); app.use('/', static(path.join(__dirname,'public'))); app.use(cookieParser()); app.use('/',router); app.use(bodyParser.urlencoded({extended:false})); app.use(bodyParser.json()); router.route('/process/setCookie').get(function (req,res) { console.log('setCookie 요첟됨') res.cookie('user',{ id:'mike', name:'모모랜드', authorized:true }); res.redirect('/process/getCookie'); }); router.route('/process/getCookie').get(function (req,res) { res.send(req.cookies); }); http.createServer(app).listen(app.get('port'),function () { console.log('포트 3000에 연결됐습니다.') })
결과물
app.use에 등록을 한 후 res.cookie(쿠키이름,{json형식})으로 사용된다. 보고 싶으면 req.cookies로 보면된다.
session 사용하기
session을 이용하려면 npm을 통해서 다운 받아야한다. npm install express-session --save
이번에는 로그인을 통해 세션이 있다면 접근 할 수 있고 없다면 접근 하지 못하게 하는
웹 페이지를 만들어 보겠다.
var http = require('http'), express = require('express'), path = require('path'), cookieParser = require('cookie-parser'),static = require('serve-static'), expressSession = require('express-session'), bodyParser = require('body-parser'); var app = express(); var router = express.Router(); app.use('/',static(path.join(__dirname,'public'))); // app.use(cookieParser()); app.use(expressSession({ secret:'my key', resave:'true', saveUninitialized:true })) //미들웨어에 세션등록 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended:false})); app.use('/', router); router.route('/login/Session').post(function (req,res) { var paramId = req.query.id ||req.body.id; var parampassword = req.body.pw; if(req.session.user){ //이미 로그인 되어있다면 console.log('이미 로그인'); res.redirect('/ProductPage.html'); }else { req.session.user= { id:paramId, password:parampassword } //처음 로그인 했을 때 세션등록 console.log('처음 로그인') res.writeHead('200',{'Content-Type':'text/html;charset=utf8'}); res.write('로그인 성공 완료
'); res.write('상품페이지로 이동
'); res.write('상품페이지'); res.end(); } }); router.route('/Product').get(function (req, res) { if(req.session.user){ res.redirect('/ProductPage.html'); }else { res.redirect('/hi.html'); } }); router.route('/session/Logout').get(function (req, res) { if(req.session.user){ req.session.destroy(function (err) { if(err) { throw err; } res.redirect('/hi.html'); }) } else { console.log('로그인 되어 있지 않습니다.'); res.redirect('/hi.html'); } }); http.createServer(app).listen(3000, function () { console.log('3000에 연결합니다.'); })
미들웨어에 등록 후 세션을 만들 때는
req.session.세션이름 = {
json형식으로
}
session을 없애고 싶을 때는 req.session.destroy(function(err){
}) 이용하면 된다.
'javascript > node.js' 카테고리의 다른 글
nodemon 사용해보기 (0) | 2018.11.01 |
---|---|
Do it Node.js express를 이용하여 서버 만들기 7편 오류페이지 만들기 (0) | 2018.03.29 |
Do it Node.js express를 이용하여 서버 만들기 5편 Route 기능 사용하기 (0) | 2018.03.16 |
Do it Node.js express를 이용하여 서버 만들기 4편 다양한 미들웨어 사용하기 (0) | 2018.03.14 |
Do it Node.js express를 이용하여 서버 만들기 3편 요청할 때 파라미터 추가해보기 (0) | 2018.03.13 |