100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

개발/Node.js (NestJS)

[Node.js] Session 공부

dc-choi 2022. 1. 7. 22:46
반응형

예제 코드

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를 이용해서 더 간단하게 구현할 수 있음.

반응형