-
Express - Session 1JavaScript/Node.js 2018. 12. 4. 18:07
Express - Session 1
지난 시간에 쿠키에 대해서 알아보았으니 이번 시간에는 세션에 대해서 알아보자.
세션은 웹 서버에 접근한 사용자를 식별하기 위해 만들어진 기술이다.
기존 HTTP 프로토콜은 사용자의 상태를 유지하는 능력이 없기 때문에 애플리케이션을 이용하는 사용자를 구별할 수 있는 방법이 없었다.
그래서 세션이라는 기술을 이용해 브라우저의 연결이 지속되는 기간동안 사용자를 식별할 수 있도록 데이터를 보관하고 요청이 발생할 때 식별 데이터를 이용하여 어떠한 사용자인지 구분을 할 수 있다.
Express-Session
Express API 문서 페이지를 들어가보면 Request객체와 Response객체에서 Session속성을 지원하지 않는 것을 알 수 있다.
그래서 외부 npm 패키지 모듈을 설치하여 애플리케이션에 주입시켜야한다.
npm 사이트에서 express-session을 검색하자.
페이지를 보면 설치하는 방법을 알려준다.
설치 구문을 이용해 패키지를 설치하도록 하자.
한가지 주의할 점이 있는데
express-session 패키지는 1.5.0 버전 이상의 경우 cookie-parser 미들웨어를 사용하지 않고도 자체적으로 cookie 기능을 포함하고 있다고 한다.
만약 cookie-parser 미들웨어를 같이 사용할 경우 암호 키가 express-session의 암호 키와 다른 경우 문제를 발생시킬 수 있다고 하니 참고하도록 하자.
세션 생성
패키지를 설치했으니 이제 session을 사용하는 방법을 알아보자.
API문서에서 쿠키에 대한 설명 글에서 내려보면 세션에 대한 설명이 나온다.
"세션 데이터를 저장하거나 접근하려면 req.session 속성을 사용하면 된다."
epxress.use()를 통해 세션에 대한 옵션을 설정한다. 쿠키와 같이 암호 키를 설정할 수 있고 쿠키에 대한 설정도 가능하다.
프로젝트에서 app_session.js 애플리케이션을 생성하자.
그리고 내용에 아래의 코드를 작성한다.
require를 통해 express-session 모듈을 애플리케이션에 주입하고 express객체의 use()메소드를 통해 세션에 대한 옵션을 설정한다.
라우트를 새로 생성하자.
req.session속성을 통해 count라는 세션을 생성하고 값을 설정하고 화면에 출력하자.
이후 /count URL로 접속하면 세션을 통해 값이 생성된 것을 확인할 수 있다.
개발자 도구를 열어 애플리케이션 탭에서 쿠키 정보를 확인해보자.
connect.sid라는 이름의 쿠키가 생성되고 값이 작성되어있는 것을 알 수 있다.
connect.sid라는 쿠키를 생성하고 이것을 식별자로 이용하여 사용자를 식별할 수 있게 된다.
'JavaScript > Node.js' 카테고리의 다른 글
암호화 - MD5, SHA256, PBKFD2 (0) 2018.12.06 Express - MySQL Session (0) 2018.12.04 Cookie 서명 (0) 2018.12.01 Cookie (0) 2018.12.01 mysql - 글 삭제하기 (0) 2018.11.30