dev/node.js

node.js 웹사이트 개발 - 쿠키와 세션(cookie, session)

코딩for 2020. 10. 22. 09:10
반응형

쿠키(Cookie)

쿠키에 대한 자세한 설명

https://terms.naver.com/entry.nhn?docId=819094&cid=42344&categoryId=42344

https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4

 

http 쿠키를 생성하기 위해서는 Response 헤더에 Set-Cookie 를 이용하여 생성을하게 된다.

여기서는 cookie-parser 미들웨어를 이용하여 쿠키를 생성 삭제 하는 방법을 알아본다.

 

 

1. npm 쿠키 파서 설치

npm install cookie-parser --save

 

2. 설치한 모듈을  app.use 에 등록

var cookieParser = require('cookie-parser')

app.use(cookieParser())

 

3. 쿠키 생성 및 삭제

// 쿠키 생성
res.cookie('userid', userid);  // 응답 객체에 쿠키를 생성한다.

// 쿠키삭제
res.clearCookie('userid');  // 응답 객체에 쿠키를 삭제한다.

// 쿠키 조회
req.cookies["userid"]    // 요청 객체에서 쿠키를 조회한다

4. 쿠키 생성시 옵션 설정

res.cookie('userid', userid, {
    maxAge: 60*60*1000,
    httpOnly: true,
    path:'/'
});

/*
쿠키 options 설명
    maxAge   : 만료 시간을 밀리초 단위로 설정
    expires  : 만료 날짜를 시간으로 설정
    path     : cookie의 경로 default “/“
    domain   : 도메인 네임 
    secure   : https에서만 cookie 사용
    httpOnly : 웹서버를 통해서만 cookie 접근
*/

* 쿠키 생성시 maxAge, expires 를 설정하지 않으면 만료시간이 없는 session Cookie가 생성이 된다.

세션 쿠키란 브라우저의 세션이 종료됨과 동시에 만료가 되는 쿠키이며, maxAge, expires 만료일지 지정이 되면 만료일 이 후에 삭제되는 Persistent Cookie가 생성이 된다.

Session Cookie와 Persistent Cookie

 

 

 

 

세션(Session)

쿠키는 서버가 아닌 브라우저(클라이언트)에 정보가 저장이 된다. 하지만 세션은 서버내에 저장이 되기때문에 쿠키보다 보안이 뛰어난 장점이 있다. 또한, 세션은 쿠키와 같이 영속적으로 저장이 불가합니다.

 

node.js 에서 세션을 사용하기 위해서 express-session 미들웨어를 이용합니다.

 

1. npm 모듈 설치

npm install express-session --save

 

2. session 사용을 위한 app.use 등록

var session = require("express-session");

app.use(session({
     secret :"node-session",
     resave:false,
     saveUninitialized:true
}))

/*
   option 
   
   - secret : 필수, 세션 암호화에 사용
   - resave : 세션이 변경되지 않아도 저장이 됨, false 권장
   - saveUninitialized : 세션 초기화시 미리 만들지를 설정
*/

 

3. 세션 저장 및 삭제

//세션 생성
req.session.user = result;    // user라는 이름으로 request 객체에 데이터를 저장

//세션 삭제
req.session.destroy();		// 현재 세션을 삭제한다.

 

 

다음편에 쿠키, 세션을 이용한 로그인, 로그아웃을 구현해 봅니다.

node.js 웹사이트 맨땅 개발하기 - 회원가입, 로그인,로그아웃 구현

 

 

 

반응형