투케이2K

222. (NodeJs) [Mac Os] [express-session] [간단 소스] 세션 설정 시 rolling 값 지정 및 페이지 이동 시 maxAge 세션 값 갱신 수행 본문

NodeJs

222. (NodeJs) [Mac Os] [express-session] [간단 소스] 세션 설정 시 rolling 값 지정 및 페이지 이동 시 maxAge 세션 값 갱신 수행

투케이2K 2024. 10. 1. 11:02

[개발 환경 설정]

개발 툴 : VS CODE

개발 언어 :NodeJs

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : NodeJs

- 개발 툴 : VsCode

- 개발 기술 : 세션

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[사전) express-session 간단 설명 및 옵션 설명]
// --------------------------------------------------------------------------------------

1. express-session 는 NodeJs 에서 쿠키 및 세션 관리를 편하게 할 수 있게 제공해주는 패키지 입니다.

  >> 비슷한 기능 예로 cookie-session 이 있음


2. express-session 옵션 설정 기본 설명 : 

  >> secret : (필수) 세션 발급에 필요한 비공개 키

  >> resave : 세션을 저장하고 불러올 때 다시 저장 할 지 여부

  >> saveUninitialized : 세션 저장 시 초기화 여부

  >> cookie (쿠키) :

    - maxAge : (쿠키 보관 기간, millisecond)

    - httpOnly : 클라이언트에서 쿠키 확인 가능 여부 (true: 확인 불가능 / http 전용 쿠키로 JavaScript 와 같은 클라이언트측 API 로 액세스할 수 없습니다)

    - secure : HTTPS 프로토콜 상에서 암호화된 (encrypted ) 요청일 경우에만 쿠키를 전송 합니다

  >> store: 세션이 저장될 DB Store 또는 Redis

  >> rolling: 로그인 상태에서 다른 페이지로 이동 할 때마다 세션값에 변화(maxAge 시간 변경 등)를 줄 것인지 여부

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

// ---------------------------------------
// [모듈 추가]
// ---------------------------------------
const session = require('express-session'); // [세션 추가]

app.use(session({
    secret: 'twok2k0123456789', // [세션 암복호화 키]
    resave: true, // [세션 데이터가 바뀌기 전까지는 세션 저장소에 값을 저장하지 않음]
    saveUninitialized: false, // [세션이 필요하기 전까지는 세션을 구동시키지 않음]
    cookie: { maxAge: 3600000, httpOnly: true }, // [브라우저 쿠키 설정]
    rolling: true // [세션값 변화 시 maxAge 변경 여부]
}))

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[express-session 모듈 추가 방법]

https://blog.naver.com/kkh0977/223336146203


[express-session 세션 값 저장 방법]

https://blog.naver.com/kkh0977/223336162211?trackingCode=blog_bloghome_searchlist


[express-session 세션 값 삭제 방법]

https://blog.naver.com/kkh0977/223336173892?trackingCode=blog_bloghome_searchlist


[http cookie 쿠키 기본 옵션 설명 및 samesite 옵션 설명]

https://blog.naver.com/kkh0977/223595018272?trackingCode=blog_bloghome_searchlist


[express-session 깃 (Git) 사이트]

https://github.com/expressjs/session

// --------------------------------------------------------------------------------------

 

반응형
Comments