본문 바로가기

백엔드

session : secret/resave/saveUninitialized 쓰는 이유

사용한 npm : express-session

 

 

신기하게, session사용하면서 안에 아무런 내용도 입력을 안했더니 

이렇게 터미널 창에 입력하라고 안내가 나왔다.

 

resave, saveUninitialized, secret 3개옵션을 설정하라는 것이었다.

 

 

 

내가 보면서 클론 코딩하고 있는게 아래 였는데, 딱 3개 다 입력이 되어있었다.

 


 

secret: 내가 설정하는 시크릿 코드(아무거나 써도됨)

 

 

resave:

request 때마다 계속 세션 새로고침할거야?

true - 응 새로운 리퀘스트 때마다 세션 새로 줘 (현재 deprecated됨)

false - 아니, 한번 받은 세션은 그대로 둘게

 

 ==> 대부분 false를 쓰기 떄문에 true는 deprecated된 상태. 

 

 

 

 

 

 

saveUninitialized:

true - 사용자가 방문한 횟수를 알고 싶을때 (현재 deprecated됨)

false - 빈 세션이 쌓이지 않게 함(저장공간을 아낄 수 있음)

 

 ==> 대부분 false를 쓰기 떄문에 true는 deprecated된 상태. 

 

 

---

tmi:

saveUninitialized를 true로 설정하면, 사용자가 로그인 하지 않고 내 페이지를 방문 하기만 해도 세션이 생긴다.

 

saveUninitialized가 "횟수"를 저장하는 것이기 때문에 내 페이지에 누가 들어오기만 해도 그걸 카운트 하려고 세션을 주는것 같다. 

 

아무튼, false로 설정해두어야 로그인 했을때에만 세션 허용할수 있음. 


세션 사용시에 이렇게 내용을 추가 해 주었더니 이제 안내가 사라졌다.

 

 

결론? express-session 쓸때 3가지 내용은 꼭 첨부를 해주자.

secret: 내가 설정하는 시크릿키

resave: false

saveUninitialized: false

 

 

참고자료

https://fierycoding.tistory.com/36