반응형
예제 코드
var express = require('express')
var session = require('express-session')
var FileStore = require('session-file-store')(session)
var app = express()
app.use(session({
secret: 'asadlfkj!@#!@#dfgasdg',
resave: false,
saveUninitialized: true,
store: new FileStore()
}))
app.get('/', function (req, res, next) {
console.log(req.session);
if (req.session.num === undefined){
req.session.num = 1;
} else {
req.session.num = req.session.num + 1;
}
res.send(`Views : ${req.session.num}`);
})
app.listen(3000, function () {
console.log('3000!');
});
session이란?
사용자의 개인화를 위해서 서버상에 key=value 형태로 정보를 저장하는 것.
express-session의 구동
Node.js에서는 session을 제어할 때 express-session이라는 모듈을 사용한다.
session 객체 사용법
express-session 모듈이 요청시에 session이라는 객체를 추가한다.
만약 모듈을 사용하지않으면, session은 undefined가 된다.
session Store
세션 데이터의 저장소를 의미한다.
세션 저장소는 여러가지 형태로 구현할 수 있다고 한다.
예제에서는 파일에 세션 정보를 저장하도록 구현하였다.
인증 구현
로그인 : 받아오는 값의 ID, PW가 맞는지 확인하고, 그에 따라 결과값을 다르게 반환한다.
로그아웃 : session.destroy()를 이용해서 세션을 삭제할 것.
session.save()를 이용해서 세션 저장소에 저장하도록 할 것.
수업을 마치며
현실에서는 https에서 통신을 할 것.
웹 브라우저에서 JS를 이용해 세션과 쿠키의 값을 이용할 수 없도록 할 것.
Oauth를 이용해서 인증에 대한 책임을 어느정도 인가할 수도 있음.
passport.js를 이용해서 더 간단하게 구현할 수 있음.
반응형
'개발 > Node.js (NestJS)' 카테고리의 다른 글
[Node.js] EC2에 Express APP 배포하기 (0) | 2022.03.02 |
---|---|
[Node.js] Passport (로컬 로그인 with session) (0) | 2022.01.19 |
[Node.js] Cookie 공부 (0) | 2022.01.07 |
[Node.js] Node.js에 MVP 패턴을 적용하기 (0) | 2021.12.24 |
[Node.js] dotenv 적용하기 (0) | 2021.12.24 |